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