Argentum Online - Servidor
|
|
1 #ifndef SERVER_MANAGER_H
2 #define SERVER_MANAGER_H
7 #include "../include/network/socket_manager.h"
8 #include "../include/nlohmann/json.hpp"
9 #include "../include/types.h"
10 #include "character_manager.h"
11 #include "clients_names_monitor.h"
12 #include "game/game_manager.h"
13 #include "map_changer.h"
14 #include "network/clients_monitor.h"
15 #include "network/th_client_accepter.h"
16 #include "server_exceptions.h"
18 #include "th_dispatcher.h"
43 std::recursive_mutex m;
66 std::unordered_map<MapId, Session> sessions;
72 std::unordered_map<ClientId, MapId> client_to_map;
97 MapMonitor& get_map_by_client(ClientId client_id);
155 void add_player(ClientId client_id, nlohmann::json player_info);
164 nlohmann::json
rm_player(ClientId client_id);
185 std::string get_name_by_client(ClientId client_id);
186 ClientId get_client_by_name(
const std::string& name);
208 #endif // SERVER_MANAGER_H
Definition: socket_manager.h:12
Definition: game_manager.h:10
Monitor de sockets de los clientes.
Definition: clients_monitor.h:21
nlohmann::json rm_player(ClientId client_id)
Remueve un jugador del mapa (y la sesión asociada) al que esté conectado.
Definition: server_manager.cpp:104
Session & get_session(ClientId client_id)
Obtener la sesión a la que está conectado un cliente.
Definition: server_manager.cpp:176
void dispatch(const Event &ev)
Agregar un evento que debe ser manejado por el servidor.
Definition: server_manager.cpp:44
void add_player(ClientId client_id, nlohmann::json player_info)
Agregar un jugador a un mapa y la sesión asociada.
Definition: server_manager.cpp:68
Definition: character_manager.h:43
void rm_client(ClientId client_id)
Eliminar a un cliente del servidor.
Definition: server_manager.cpp:52
Orquestador de las componentes del servidor. (Singleton)
Definition: server_manager.h:31
Definition: map_changer.h:7
void drop_client(ClientId client_id)
Función ejecutar la desconexión de un cliente.
Definition: server_manager.cpp:64
Definition: map_monitor.h:14
Definition: th_dispatcher.h:11
Monitor de ClientsNames.
Definition: clients_names_monitor.h:27
void finish()
Cerrar y finalizar el servidor de forma ordenada.
Definition: server_manager.cpp:140
void start()
Empezar a ejecutar la instancia del servidor.
Definition: server_manager.cpp:20
Definition: th_client_accepter.h:8
void send_to(ClientId client_id, const Event &ev)
Envia un Evento a un cliente.
Definition: server_manager.cpp:136
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.
Definition: server_manager.cpp:125
void add_client(ClientId client_id, SocketManager *new_client)
Agregar a un cliente al servidor.
Definition: server_manager.cpp:48