Argentum Online - Servidor
session.h
1 #ifndef SESSION_H
2 #define SESSION_H
3 
4 #include <mutex>
5 
6 #include "../include/event.h"
7 #include "../include/types.h"
8 #include "game/map_monitor.h"
9 #include "network/client_id_set.h"
10 #include "network/th_broadcaster.h"
11 #include "th_observer.h"
12 
13 class Session {
14  private:
19  MapMonitor& map;
25  ClientToEntityMap clients;
30  ThBroadcaster broadcaster;
36  ThObserver observer;
37 
38  public:
39  Session(MapMonitor& map);
40 
41  void start();
42 
43  void finish();
44 
52  void add_client(ClientId new_client, EntityId entity_id);
53 
54  EntityId rm_client(ClientId client_id);
55 
56  void push_action(ClientId client_id, Action* action);
57 
58  MapMonitor& get_map();
59 
65  void broadcast(const Event& ev);
66 
67  ~Session();
68 };
69 
70 #endif // SESSION_H
Session::broadcast
void broadcast(const Event &ev)
Envía a todos los clientes en la sesión un evento.
Definition: session.cpp:40
Action
Definition: action.h:9
Session
Definition: session.h:13
ClientToEntityMap
Definition: client_id_set.h:10
Event
Definition: event.h:55
ThObserver
Definition: th_observer.h:11
MapMonitor
Definition: map_monitor.h:14
Session::add_client
void add_client(ClientId new_client, EntityId entity_id)
Agregar un cliente a la sesión.
Definition: session.cpp:20
ThBroadcaster
Definition: th_broadcaster.h:7