src/proto2/NetworkSession.hh
branchno-netsession
changeset 34 1ea6554d703e
parent 33 e53f09b378f4
child 36 785d220fc6b7
equal deleted inserted replaced
33:e53f09b378f4 34:1ea6554d703e
    23         NetworkUDP *udp_srv, *udp_client;
    23         NetworkUDP *udp_srv, *udp_client;
    24 
    24 
    25         CL_SlotContainer slots;
    25         CL_SlotContainer slots;
    26 
    26 
    27         std::map<NetworkAddress, NetworkNode*> nodes;
    27         std::map<NetworkAddress, NetworkNode*> nodes;
       
    28         std::map<NetworkChannelID, CL_Signal_v2<const NetworkPacket&, NetworkNode *>> _map_sig_chan_message;
    28     
    29     
    29     public:
    30     public:
    30         NetworkSession (NetworkSessionMagic magic);
    31         NetworkSession (NetworkSessionMagic magic);
    31 
    32 
    32         void listen (const NetworkAddress &addr);
    33         void listen (const NetworkAddress &addr);
    34 
    35 
    35     private:
    36     private:
    36         void on_tcp_client (const NetworkTCPTransport *client);
    37         void on_tcp_client (const NetworkTCPTransport *client);
    37         void on_disconnect (NetworkNode *node);
    38         void on_disconnect (NetworkNode *node);
    38 
    39 
       
    40          CL_Signal_v1<NetworkNode*> _sig_node_connected;
       
    41          CL_Signal_v1<NetworkNode*> _sig_node_disconnected;
       
    42 
    39     public:
    43     public:
    40         void send_all (NetworkChannelID channel_id, const NetworkPacket &pkt, bool reliable = true);
    44         void send_all (NetworkChannelID channel_id, const NetworkPacket &pkt, bool reliable = true);
    41         void send_all_except (NetworkChannelID channel_id, const NetworkPacket &pkt, const NetworkNode *node, bool reliable = true);
    45         void send_all_except (NetworkChannelID channel_id, const NetworkPacket &pkt, const NetworkNode *node, bool reliable = true);
    42 
    46 
    43         CL_Signal_v1<NetworkNode*> sig_node_connected;
    47         CL_Signal_v1<NetworkNode*> sig_node_connected (void) { return _sig_node_connected; }
    44         CL_Signal_v1<NetworkNode*> sig_node_disconnected;
    48         CL_Signal_v1<NetworkNode*> sig_node_disconnected (void) { return _sig_node_disconnected; }
       
    49         CL_Signal_v2<const NetworkPacket&, NetworkNode *>& sig_chan_message (NetworkChannelID cid) { return _map_sig_chan_message(cid); }
    45 };
    50 };
    46 
    51 
    47 #endif /* NETWORK_SESSION_HH */
    52 #endif /* NETWORK_SESSION_HH */