src/proto2/NetworkSession.hh
branchno-netsession
changeset 37 ed2957490bbf
parent 36 785d220fc6b7
child 39 cfb8b6e2a35f
equal deleted inserted replaced
36:785d220fc6b7 37:ed2957490bbf
     1 #ifndef NETWORK_SESSION_HH
     1 #ifndef NETWORK_SESSION_HH
     2 #define NETWORK_SESSION_HH
     2 #define NETWORK_SESSION_HH
       
     3 
       
     4 #include <map>
     3 
     5 
     4 // forward-declare
     6 // forward-declare
     5 class NetworkSession;
     7 class NetworkSession;
     6 
     8 
     7 /*
     9 /*
    11 
    13 
    12 #include "NetworkTCP.hh"
    14 #include "NetworkTCP.hh"
    13 #include "NetworkUDP.hh"
    15 #include "NetworkUDP.hh"
    14 #include "NetworkNode.hh"
    16 #include "NetworkNode.hh"
    15 
    17 
    16 #include <map>
    18 class NetworkSession {
       
    19     friend class NetworkNode;
    17 
    20 
    18 class NetworkSession {
       
    19     private:
    21     private:
    20         uint64_t magic;
    22         uint64_t magic;
    21         NetworkTCPServer *tcp_srv;
    23         NetworkTCPServer *tcp_srv;
    22         NetworkUDP *udp_srv, *udp_client;
    24         NetworkUDP *udp_srv, *udp_client;
    23 
    25 
    32         void listen (const NetworkAddress &addr);
    34         void listen (const NetworkAddress &addr);
    33         NetworkNode* connect (const NetworkAddress &addr);
    35         NetworkNode* connect (const NetworkAddress &addr);
    34     
    36     
    35     protected:
    37     protected:
    36         virtual NetworkNode *build_node (NetworkTCPTransport *tcp, NetworkUDP *udp, const NetworkAddress &addr, enum NetworkNodeType type);
    38         virtual NetworkNode *build_node (NetworkTCPTransport *tcp, NetworkUDP *udp, const NetworkAddress &addr, enum NetworkNodeType type);
       
    39         
       
    40         void handle_disconnect (NetworkNode *node);
    37 
    41 
    38     private:
    42     private:
    39         void on_tcp_client (NetworkTCPTransport *client);
    43         void on_tcp_client (NetworkTCPTransport *client);
    40         void handle_disconnect (NetworkNode *node);
       
    41 
    44 
    42          CL_Signal_v1<NetworkNode*> _sig_node_connected;
    45          CL_Signal_v1<NetworkNode*> _sig_node_connected;
    43 
    46 
    44     public:
    47     public:
    45         void send_all (NetworkChannelID channel_id, const NetworkPacket &pkt, bool reliable = true);
    48         void send_all (NetworkChannelID channel_id, const NetworkPacket &pkt, bool reliable = true);