Olivia_v2017/includes/Utiles/utiles_def.h

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
};