equal
deleted
inserted
replaced
|
1 #ifndef NETWORK_NODE_HH |
|
2 #define NETWORK_NODE_HH |
|
3 |
|
4 // forward-declare |
|
5 class NetworkNode; |
|
6 |
|
7 enum NetworkNodeType { |
|
8 NETWORK_NODE_SERVER_CLIENT, |
|
9 NETWORK_NODE_CLIENT_SERVER |
|
10 }; |
|
11 |
|
12 #include "TCP.hh" |
|
13 #include "UDP.hh" |
|
14 #include "Session.hh" |
|
15 |
|
16 class NetworkNode { |
|
17 private: |
|
18 NetworkSession &session; |
|
19 NetworkTCPTransport *tcp; |
|
20 NetworkUDP *udp; |
|
21 const NetworkAddress address; |
|
22 |
|
23 CL_SlotContainer slots; |
|
24 |
|
25 public: |
|
26 NetworkNode (NetworkSession &session, NetworkTCPTransport *tcp, NetworkUDP *udp, const NetworkAddress &address); |
|
27 |
|
28 private: |
|
29 NetworkNode (const NetworkNode ©); |
|
30 ~NetworkNode (void); |
|
31 NetworkNode& operator= (const NetworkNode ©); |
|
32 |
|
33 void on_disconnect (void); |
|
34 |
|
35 CL_Signal_v0 _sig_disconnected; |
|
36 |
|
37 public: |
|
38 void send (NetworkChannelID channel_id, const NetworkPacket &pkt, bool reliable = true); |
|
39 |
|
40 const NetworkAddress& getRemoteAddress (void); |
|
41 |
|
42 CL_Signal_v0& sig_disconnected (void) { return _sig_disconnected; } |
|
43 }; |
|
44 |
|
45 #endif /* NETWORK_NODE_HH */ |