--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/NetworkNode.hh Wed Dec 03 19:16:32 2008 +0000
@@ -0,0 +1,45 @@
+#ifndef NETWORK_NODE_HH
+#define NETWORK_NODE_HH
+
+// forward-declare
+class NetworkNode;
+
+enum NetworkNodeType {
+ NETWORK_NODE_SERVER_CLIENT,
+ NETWORK_NODE_CLIENT_SERVER
+};
+
+#include "NetworkTCP.hh"
+#include "NetworkUDP.hh"
+#include "NetworkSession.hh"
+
+class NetworkNode {
+ private:
+ NetworkSession &session;
+ NetworkTCPTransport *tcp;
+ NetworkUDP *udp;
+ const NetworkAddress address;
+
+ CL_SlotContainer slots;
+
+ public:
+ NetworkNode (NetworkSession &session, NetworkTCPTransport *tcp, NetworkUDP *udp, const NetworkAddress &address);
+
+ private:
+ 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 */