Socket
Librería para comunicar via TCP/IP
 Todo Clases Archivos Funciones Variables 'defines' Páginas
Métodos públicos | Atributos privados | Lista de todos los miembros
Referencia de la Clase Server

Clase de aplicación servidor. Más...

#include <server.h>

Métodos públicos

 Server ()
 Constructor de la clase Server. Más...
 
int getNWorkers ()
 Getter del número de threads activos. Más...
 
void setNWorkers (int n)
 Setter del número de threads activos. Más...
 
list< pthread_t * > * getStartedThreads ()
 Getter de la pila de threads activos. Más...
 
list< pthread_t * > * getStoppedThreads ()
 Getter de la pila de threads terminados. Más...
 
void startServer (string i, int p)
 Método de inicialización del servidor. Más...
 
void freeRAM (list< pthread_t * > *threadList)
 Método para liberar memória de threads. Más...
 
void requestExit ()
 Método para terminar el servidor. Más...
 

Atributos privados

int nWorkers
 Contador de threads. Más...
 
bool shutdownServer
 Variable de apagado. Más...
 
int workerID
 Contador de ID de thread. Más...
 
list< pthread_t * > stoppedThreads
 Pila de threads terminados. Más...
 
list< pthread_t * > startedThreads
 Pila de threads empezados. Más...
 
Socket ss
 Socket de comunicación. Más...
 

Descripción detallada

Clase de aplicación servidor.

Esta clase define un objeto con los métodos y atributos necesarios para lanzar una aplicación servidor y atender las conexiones. Para realizar la comunicación con el cliente, usa un objeto de la clase Socket

Documentación del constructor y destructor

Server::Server ( )
inline

Constructor de la clase Server.

Incializa los argumentos inciales del servidor

Documentación de las funciones miembro

void Server::freeRAM ( list< pthread_t * > *  threadList)

Método para liberar memória de threads.

Este método se llama para que libere la memoria de todos los threads que se le proporcionan por argumento

Parámetros
threadListContenedor con los threads a liberar
int Server::getNWorkers ( )

Getter del número de threads activos.

Devuelve el número de threads activos en ese instante, por tanto, del número de conexiones que están siendo atendidas.

list<pthread_t*>* Server::getStartedThreads ( )

Getter de la pila de threads activos.

Devuelve un contenedor con la lista de threads que estan activos, para terminarlos en caso de que el programa finalice prematuramente

list<pthread_t*>* Server::getStoppedThreads ( )

Getter de la pila de threads terminados.

Devuelve un contenedor con la lista de threads que han terminado, para poder liberar la memoria que se le ha asignado

void Server::requestExit ( )

Método para terminar el servidor.

Este método inicia la secuencia de finalización del servidor

void Server::setNWorkers ( int  n)

Setter del número de threads activos.

Establece el número de threads activos, para poder cambiarlo cuando alguno de los threads activos finaliza

Parámetros
nNuevo número de threads activos
void Server::startServer ( string  i,
int  p 
)

Método de inicialización del servidor.

Incializa el servidor en el puerto e IP especificados para empezar a recibir conexiones entrantes

Parámetros
iIP donde se aceptan las conexiones
pPuerto donde se aceptan las conexiones

Documentación de los datos miembro

int Server::nWorkers
private

Contador de threads.

Esta variable se encarga de mantener la cuenta de threads activos, por tanto, el número de conexiones que estan siendo antendidas simultáneamente.

bool Server::shutdownServer
private

Variable de apagado.

Esta variable controla el apagado del servidor, al ponerla a true, la siguiente iteración del bucle que atiende las conexiones no se producirá y el programa terminará.

Socket Server::ss
private

Socket de comunicación.

Esta variable contiene el objeto de la clase Socket que la aplicación servidor usa para poder atender las peticiones. Su función es quedarse escuchando el el puerto e IP introducidas en el fichero de configuración y crear un objeto de la clase Socket para cada petición de cada cliente nuevo, siendo este último objeto creado el que se usa para la comuncación.

list<pthread_t*> Server::startedThreads
private

Pila de threads empezados.

Esta variable contiene una lista de threads que han empezado su ejecución. Si el programa finalizara prematuramente, se liberarían los punteros de los threads almacenados en esta pila.

NOTA: No se liberará la memoria asignada a los argumentos de los threads, dando lugar a memory leaks; sin embargo, esto se produciria al finalizar el programa, por tanto no es relevante.

list<pthread_t*> Server::stoppedThreads
private

Pila de threads terminados.

Esta variable contiene una lista de threads que han finalizado su ejecución. A cada iteración del bucle que atiende conexiones, se libera toda la memoria de los threads que hay almacenados aquí.

int Server::workerID
private

Contador de ID de thread.

Esta variable contiene el ID del próximo thread que se creará, por tanto, indica el número de conexiones que han sido atendidas desde el inicio del servidor


La documentación para esta clase fue generada a partir del siguiente fichero: