utiles_v2017/control_usu_con.h

35 lines
1.5 KiB
C++

#pragma once
#include "garray.h"
#include "utiles_def.h"
#include "lock.h"
class C_error;
//proporciona un control de usuarios (entra en usuarios etc...)
class Ccontrol_usu_con
{
public:
//variables-----------------------------------------
Cgarray<Usuario_conx_0>us;//array de usuarios
Clock cerrojo;//interlock para protejer el array de usuarios
int nb;//numero de usuarios borrados;
int na;//numero de usuarios conectados;
//c y d---------------------------------------------
Ccontrol_usu_con(void);
~Ccontrol_usu_con(void);
//funciones-----------------------------------------
int lee(char* path, C_error *er);//carga usuarios de archivo y dice los que ha añadido
BOOL guarda(char*path ,C_error *er);//guarda los usuarios en un archivo
int pon(Usuario_conx_0 *u);//pone info del cliente en una posicion vacia de la lista (proteje antes usar)
Usuario_conx_0* get( char* nombre );
//funciones concurrente----------
int add(Usuario_conx_0 *user);//añade user CONCURRENTE
Usuario_conx_0* conecta(char*nombre, char* key,int*err);//pone como conectado un usuario CONCURRENTE
//err=1 usuariono existe,2 key incorrecta, 3 esta bloqueado, 4 usuario en uso
BOOL desconecta(Usuario_conx_0 *user);//desconecta un usuario CONCURRENTE
BOOL borra(Usuario_conx_0 *user);//borra usuario CONCURRENTE
int esta(char *nombre); //da el indice del usuario)(si esta)
BYTE* get_copy( int*nu,int modo=0 );//da una copia de los usuarios actuales
void verifica();//mira estado de lista y comprime si es necesario CONCURRENTE
};