Orquestador de las componentes del servidor. (Singleton)
Más...
#include <server_manager.h>
|
void | start () |
| Empezar a ejecutar la instancia del servidor. Más...
|
|
ThDispatcher & | get_dispatcher () |
|
CharacterManager & | get_character_manager () |
|
void | dispatch (const Event &ev) |
| Agregar un evento que debe ser manejado por el servidor. Más...
|
|
void | add_client (ClientId client_id, SocketManager *new_client) |
| Agregar a un cliente al servidor. Más...
|
|
void | rm_client (ClientId client_id) |
| Eliminar a un cliente del servidor. Más...
|
|
void | drop_client (ClientId client_id) |
| Función ejecutar la desconexión de un cliente. Más...
|
|
void | add_player (ClientId client_id, nlohmann::json player_info) |
| Agregar un jugador a un mapa y la sesión asociada. Más...
|
|
nlohmann::json | rm_player (ClientId client_id) |
| Remueve un jugador del mapa (y la sesión asociada) al que esté conectado. Más...
|
|
nlohmann::json | change_player_map (ClientId client_id, position_t new_position, MapId new_map) |
| Cambia a un jugador de un mapa (y sesión) a otro. Más...
|
|
void | send_to (ClientId client_id, const Event &ev) |
| Envia un Evento a un cliente. Más...
|
|
std::string | get_name_by_client (ClientId client_id) |
|
ClientId | get_client_by_name (const std::string &name) |
|
Session & | get_session (ClientId client_id) |
| Obtener la sesión a la que está conectado un cliente. Más...
|
|
void | finish () |
| Cerrar y finalizar el servidor de forma ordenada. Más...
|
|
Orquestador de las componentes del servidor. (Singleton)
Esta clase se encarga de contener las instancias de las distintas componentes y contenedores necesarios para el servidor del juego. Esto incluye el manejo de threads que se utilizan para el mismo. Se encarga principalmente de la sincronización para agregar y sacar jugadores de los diferentes mapas (y sesiones), esto incluye cuando un jugador cambia de mapa o se teletransporta.
◆ add_client()
void ServerManager::add_client |
( |
ClientId |
client_id, |
|
|
SocketManager * |
new_client |
|
) |
| |
Agregar a un cliente al servidor.
- Parámetros
-
client_id | Id del nuevo cliente. |
new_client | Socket (alocado en heap) del nuevo cliente. |
◆ add_player()
void ServerManager::add_player |
( |
ClientId |
client_id, |
|
|
nlohmann::json |
player_info |
|
) |
| |
Agregar un jugador a un mapa y la sesión asociada.
Para un cliente existente, agrega al jugador con la información correspondiente.
- Parámetros
-
client_id | Id del cliente que está entrando con un personaje. |
player_info | Información del personaje a ser agregado. |
◆ change_player_map()
nlohmann::json ServerManager::change_player_map |
( |
ClientId |
client_id, |
|
|
position_t |
new_position, |
|
|
MapId |
new_map |
|
) |
| |
Cambia a un jugador de un mapa (y sesión) a otro.
- Parámetros
-
client_id | Id de cliente que se está cambiando de mapa. |
new_position | Posición en el nuevo mapa. |
new_map | Id del mapa a donde se mueve el jugador. |
- Devuelve
- nlohmann::json Devuelve la información del jugador al ser cambiado de mapa.
◆ dispatch()
void ServerManager::dispatch |
( |
const Event & |
ev | ) |
|
Agregar un evento que debe ser manejado por el servidor.
Simplemente envía al "Dispatcher" el evento pasado por parámetro.
- Parámetros
-
◆ drop_client()
void ServerManager::drop_client |
( |
ClientId |
client_id | ) |
|
Función ejecutar la desconexión de un cliente.
Esta función puede ser llamada porque un cliente desea desconectarse o es pateado forzosamente del servidor.
- Parámetros
-
client_id | Id del cliente a ser desconectado. |
◆ finish()
void ServerManager::finish |
( |
| ) |
|
Cerrar y finalizar el servidor de forma ordenada.
Esta función patea a todos los clientes (los desconecta y persiste sus personajes), cierra todas las componentes y une todos los threads.
◆ get_session()
Session & ServerManager::get_session |
( |
ClientId |
client_id | ) |
|
Obtener la sesión a la que está conectado un cliente.
- Parámetros
-
- Devuelve
- Session Sesión a la que está conectado un cliente.
◆ rm_client()
void ServerManager::rm_client |
( |
ClientId |
client_id | ) |
|
Eliminar a un cliente del servidor.
- Parámetros
-
client_id | Id del cliente a ser eliminado. |
◆ rm_player()
nlohmann::json ServerManager::rm_player |
( |
ClientId |
client_id | ) |
|
Remueve un jugador del mapa (y la sesión asociada) al que esté conectado.
- Parámetros
-
client_id | Id de cliente al que se va a remover. |
- Devuelve
- nlohmann::json Devuelve la información del personaje que se removió.
◆ send_to()
void ServerManager::send_to |
( |
ClientId |
client_id, |
|
|
const Event & |
ev |
|
) |
| |
Envia un Evento a un cliente.
- Parámetros
-
client_id | Id del cliente. |
ev | Evento a ser enviado al cliente. |
◆ start()
void ServerManager::start |
( |
| ) |
|
Empezar a ejecutar la instancia del servidor.
La documentación para esta clase fue generada a partir de los siguientes ficheros:
- /home/nicolas/Taller/TP FINAL - ARGENTUM/repo/server/server_manager.h
- /home/nicolas/Taller/TP FINAL - ARGENTUM/repo/server/server_manager.cpp