...
#ifndef NETWORK_NODE_HH
#define NETWORK_NODE_HH
// forward-declare
class NetworkNode;
#include "NetworkTCP.hh"
#include "NetworkUDP.hh"
#include "NetworkSession.hh"
enum NetworkNodeType {
NETWORK_NODE_SERVER_CLIENT,
NETWORK_NODE_CLIENT_SERVER
};
class NetworkNode {
private:
NetworkSession &session;
NetworkTCPTransport *tcp;
NetworkUDP &udp;
const NetworkAddress address;
CL_SlotContainer slots;
private:
NetworkNode (NetworkSession &session, NetworkTCPTransport *tcp, NetworkUDP &udp, const NetworkAddress &address);
NetworkNode (const NetworkNode ©);
~NetworkNode (void);
NetworkNode& operator= (const NetworkNode ©);
void on_disconnect (void);
CL_Signal_v0 _sig_disconnected;
public:
void send (NetworkChannelID channel_id, const NetworkPacket &pkt, bool reliable = true);
const NetworkAddress& getRemoteAddress (void);
CL_Signal_v0& sig_disconnected (void) { return _sig_disconnected; }
};
#endif /* NETWORK_NODE_HH */