Argentum Online - Servidor
clients_names_monitor.h
1 #ifndef CLIENTS_NAMES_MONITOR_H
2 #define CLIENTS_NAMES_MONITOR_H
3 
4 #include <mutex>
5 #include <unordered_map>
6 #include <utility>
7 
8 #include "../include/types.h"
9 
19 typedef std::pair<std::unordered_map<ClientId, std::string>,
20  std::unordered_map<std::string, ClientId>>
21  ClientsNames;
22 
28  private:
29  std::mutex m;
30  ClientsNames clients_names;
31 
32  public:
35 
42  void add_name(ClientId client_id, const std::string& name);
43 
49  void rm_name(ClientId client_id);
50 
57  ClientId get_client(const std::string& name);
58 
65  const std::string& get_name(ClientId client_id);
66 };
67 
68 #endif // CLIENTS_NAMES_MONITOR_H
ClientsNamesMonitor::add_name
void add_name(ClientId client_id, const std::string &name)
Agregar un cliente,nombre al mapa de clients<->names.
Definition: clients_names_monitor.cpp:8
ClientsNamesMonitor::get_client
ClientId get_client(const std::string &name)
Obtener un ClientId a partir de su nombre.
Definition: clients_names_monitor.cpp:29
ClientsNamesMonitor
Monitor de ClientsNames.
Definition: clients_names_monitor.h:27
ClientsNamesMonitor::rm_name
void rm_name(ClientId client_id)
Eliminar un cliente,nombre del mapa de clients<->names.
Definition: clients_names_monitor.cpp:18
ClientsNamesMonitor::get_name
const std::string & get_name(ClientId client_id)
Obtener un nombre a partir del ClientId.
Definition: clients_names_monitor.cpp:36