equal
deleted
inserted
replaced
1 #ifndef NETWORK_SESSION_HH |
1 #ifndef NETWORK_SESSION_HH |
2 #define NETWORK_SESSION_HH |
2 #define NETWORK_SESSION_HH |
|
3 |
|
4 #include <map> |
3 |
5 |
4 // forward-declare |
6 // forward-declare |
5 class NetworkSession; |
7 class NetworkSession; |
6 |
8 |
7 /* |
9 /* |
11 |
13 |
12 #include "NetworkTCP.hh" |
14 #include "NetworkTCP.hh" |
13 #include "NetworkUDP.hh" |
15 #include "NetworkUDP.hh" |
14 #include "NetworkNode.hh" |
16 #include "NetworkNode.hh" |
15 |
17 |
16 #include <map> |
18 class NetworkSession { |
|
19 friend class NetworkNode; |
17 |
20 |
18 class NetworkSession { |
|
19 private: |
21 private: |
20 uint64_t magic; |
22 uint64_t magic; |
21 NetworkTCPServer *tcp_srv; |
23 NetworkTCPServer *tcp_srv; |
22 NetworkUDP *udp_srv, *udp_client; |
24 NetworkUDP *udp_srv, *udp_client; |
23 |
25 |
32 void listen (const NetworkAddress &addr); |
34 void listen (const NetworkAddress &addr); |
33 NetworkNode* connect (const NetworkAddress &addr); |
35 NetworkNode* connect (const NetworkAddress &addr); |
34 |
36 |
35 protected: |
37 protected: |
36 virtual NetworkNode *build_node (NetworkTCPTransport *tcp, NetworkUDP *udp, const NetworkAddress &addr, enum NetworkNodeType type); |
38 virtual NetworkNode *build_node (NetworkTCPTransport *tcp, NetworkUDP *udp, const NetworkAddress &addr, enum NetworkNodeType type); |
|
39 |
|
40 void handle_disconnect (NetworkNode *node); |
37 |
41 |
38 private: |
42 private: |
39 void on_tcp_client (NetworkTCPTransport *client); |
43 void on_tcp_client (NetworkTCPTransport *client); |
40 void handle_disconnect (NetworkNode *node); |
|
41 |
44 |
42 CL_Signal_v1<NetworkNode*> _sig_node_connected; |
45 CL_Signal_v1<NetworkNode*> _sig_node_connected; |
43 |
46 |
44 public: |
47 public: |
45 void send_all (NetworkChannelID channel_id, const NetworkPacket &pkt, bool reliable = true); |
48 void send_all (NetworkChannelID channel_id, const NetworkPacket &pkt, bool reliable = true); |