src/NetworkNode.hh
changeset 185 25becd2cb026
equal deleted inserted replaced
184:561892e2a30e 185:25becd2cb026
       
     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 "NetworkTCP.hh"
       
    13 #include "NetworkUDP.hh"
       
    14 #include "NetworkSession.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 &copy);
       
    30         ~NetworkNode (void);
       
    31         NetworkNode& operator= (const NetworkNode &copy);
       
    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 */