src/NetworkNode.hh
changeset 185 25becd2cb026
--- /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 &copy);
+        ~NetworkNode (void);
+        NetworkNode& operator= (const NetworkNode &copy);
+        
+        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 */