#pragma once //defines de carpetas----------------------------------------------------------------------- #define D_WORK "%dir_work%" #define D_LOG "%dir_log%" #define D_APP "%dir_exe%" #define D_DAT "%dir_dat%" #define P_CONG "%p_config%" //define para comunicacion------------------------------------------------------------------ #define VERSION_PACKAGE_HEAD 1 //version de metodo de comunicacion #define MAX_LONG_PACKAGE_0 0x04000 //maximo de bytes por package //flags de cabecera /* #define FLAG_PACKAGE_HEAD_0_INICIO 0x00000001 #define FLAG_PACKAGE_HEAD_0_CONTINUACION 0x00000002 #define FLAG_PACKAGE_HEAD_0_FINAL 0x00000004*/ #define FLAG_PACKAGE_HEAD_0_ENCRIPT1 0x00000001 #define FLAG_PACKAGE_HEAD_0_REPLICADO 0x00000002 //estructuras para comunicacion------------------------------------------------------------- typedef struct Package_head_0//cabecera base de la cumunicación { int version; //version de comunicacion int flags; //flags int nb; //numero de bytes del paquete int n; //numero de bloques de este paquete }Package_head_0; //en esta version el identificador de los paquetes sera un entero (int) //paquetes generales de envio---------------------------------------------------------------- #define PETICION_GENERAL_NO 0//paquete de negacion #define PETICION_GENERAL_PRESENTA 1//peticion de presentacion usuario y key #define PETICION_GENERAL_OK 2//respuesta ok automatica #define PETICION_GENERAL_DESCONECTA 3//peticion de desconexion #define PETICION_GENERAL_DAME_LOG 4//peticion de eventos (normalmente con id) #define PETICION_GENERAL_TOMA_COMANDO 5//peticionde comando para servidor #define PETICION_GENERAL_FIN 6 //define para usuarios------------------------------------------------------------------------ #define VERSION_USUARIO_CONEXION 1 //version de usuarios //flags usuarios #define FLAG_USUARIO_CONEXION_INDI 0x00000001//indica que solo se acepta una conexion por dicho usuario #define FLAG_USUARIO_CONEXION_EN_USO 0x00000002//indica que el usuario esta en uso actualmente #define FLAG_USUARIO_CONEXION_VACIO 0x00000004//indica que el usuario esta borrado #define FLAG_USUARIO_CONEXION_BLOQ 0x00000008//indica que el usuario esta bloqueado (no se puede usar) //flags archivo #define FLAG_FILE_USUARIO_CONEX_ENCRIP 0x00000001//indica que el archivo esta encriptado //flags permisos //estructura para usuarios--------------------------------------------------------------------- typedef struct Usuario_conx_0//informacion de usuario { int flags; int id; //identificador de usuario int permisos; //flags de permisos int ia; //informacion adicional int ncon; //numero de conectados con este usuario char nombre[32]; //nombre de usuario char clave[32]; //calve de usuario }Usuario_conx_0; typedef struct Head_usuario_conex_0//cabecera de archivo de usuario { int version; //version informacion de usuaros int flags; //flags int n; //numero de usuarios en archivo }Head_usuario_conex_0; //interface de elemento que se transfiere---------------------------------- class IdataTransfer { public: //para lectura virtual __int64 getNB_it()=0;//devuelve numero de bites totales de informacion virtual __int64 getNext_it(void* buf,__int64 nb)=0;//copia en buffer buf el los siguientes nb bytes y devuelve el numero total de bites leidos //lectura y escritura inline virtual bool setPosition_it(__int64 nb){ return false; };//se posiciona en el byte nb los datos //para escritura----------- inline virtual bool set_it(void* buf, __int64 nb){ return true; };//prepara datos para recivir nb bites };