85 lines
3.5 KiB
C++
85 lines
3.5 KiB
C++
#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
|
|
}; |