Monitor de sockets de los clientes. Más...
#include <clients_monitor.h>
Métodos públicos | |
void | add_client (ClientId client_id, SocketManager *client) |
SocketManager * | rm_client (ClientId client_id) |
void | drop (ClientId client_id) |
Setea la desconexión de un cliente. Más... | |
void | drop_all () |
Prepara a todos los clientes para la desconexión. Más... | |
void | send_to (ClientId client_id, Event ev) |
Envía un evento de forma segura a un cliente. Más... | |
Monitor de sockets de los clientes.
Esta clase permite controlar los SocketManager asociados a un ClientId de forma segura. Esto incluye enviar los eventos, detectar cuando un cliente se desconecta o cuando se quiere desconectar alguno de ellos.
void ClientsMonitor::drop | ( | ClientId | client_id | ) |
Setea la desconexión de un cliente.
Esta clase encola en el "Dispatcher" el evento exlusivo del servidor para realizar la serie de acciones que implica desconectar a un cliente de forma ordenada.
client_id | Id del cliente a ser desconectado. |
void ClientsMonitor::drop_all | ( | ) |
Prepara a todos los clientes para la desconexión.
Esto se hace repitiendo la acción de drop
para todos los clientes. (Ver el miembro drop(ClientId)
de esta misma clase para más información)
void ClientsMonitor::send_to | ( | ClientId | client_id, |
Event | ev | ||
) |
Envía un evento de forma segura a un cliente.
Si el envío falla se desconecta de forma ordenada al cliente.
client_id | Id del cliente al que se le quiere enviar el evento. |
ev | Evento a ser enviado. |