00001
00010 #include "structures.h"
00011
00024 t_args_monitor *create_args_monitor(HASHTABLE_T *sessions, int tempo, pthread_mutex_t *mutex, pthread_cond_t *cond)
00025 {
00026 t_args_monitor *args = NULL;
00027 if(sessions && mutex && cond)
00028 {
00029 args = (t_args_monitor *)malloc(sizeof(t_args_monitor));
00030 args->sessions = sessions;
00031 args->session_len = tempo;
00032 args->mutex = mutex;
00033 args->cond = cond;
00034 }
00035 return args;
00036 }
00037
00047 void free_args_monitor(t_args_monitor *args)
00048 {
00049 free(args);
00050 }
00051
00066 t_args_processor *create_args_processor(HASHTABLE_T *sessions, HASHTABLE_T *contas, HASHTABLE_T *maquinas, int tempo, pthread_mutex_t *mutex)
00067 {
00068 t_args_processor *args = NULL;
00069 args = (t_args_processor *)malloc(sizeof(t_args_processor));
00070 args->hash_sessions = sessions;
00071 args->hash_contas = contas;
00072 args->hash_maquinas = maquinas;
00073 args->session_len = tempo;
00074 args->mutex = mutex;
00075 return args;
00076 }
00077
00087 void free_args_processor(t_args_processor *args)
00088 {
00089 free(args);
00090 }
00091
00101 t_session *create_session(char *login)
00102 {
00103 static char format[20];
00104 t_session *session = NULL;
00105 time_t relogio;
00106 if(login)
00107 {
00108 time(&relogio);
00109 srandom(getpid() + relogio);
00110 session = (t_session *) malloc(sizeof(t_session));
00111 sprintf(format, "%%0%dlx:%%0%dlx", sizeof(long int), sizeof(long int));
00112 sprintf(session->sessionid, format, relogio, random());
00113 session->login = strdup(login);
00114 time(&(session->working_time));
00115 }
00116 return session;
00117 }
00118
00128 void free_session(t_session *session)
00129 {
00130 free(session->login);
00131 free(session->sessionid);
00132 free(session);
00133 }
00142
00143
00144
00145
00146
00147
00159 t_maquina *create_maquina(char *ip, HASHTABLE_T *logins, LISTA_GENERICA_T *pastas)
00160 {
00161 t_maquina *maquina = NULL;
00162 if(ip && logins && pastas)
00163 {
00164 maquina = (t_maquina *)malloc(sizeof(t_maquina));
00165 maquina->ip = strdup(ip);
00166 maquina->logins = logins;
00167 maquina->pastas = pastas;
00168 }
00169 return maquina;
00170 }
00171
00179 void free_maquina(t_maquina *maq)
00180 {
00181 free(maq->ip);
00182 free(maq->logins);
00183 free(maq->pastas);
00184 free(maq);
00185 }
00186
00197 t_conta *create_conta(char *login, char *password)
00198 {
00199 t_conta *conta = NULL;
00200 if(login && password)
00201 {
00202 conta = (t_conta *) malloc(sizeof(t_conta));
00203 conta->login = strdup(login);
00204 conta->password = strdup(password);
00205 }
00206 return conta;
00207 }
00208
00218 void free_conta(t_conta *conta)
00219 {
00220 free(conta->login);
00221 free(conta->password);
00222 free(conta);
00223 }