src/proto2/NetworkNode.hh
author nireco
Fri, 28 Nov 2008 13:11:51 +0000
changeset 116 0d36aade845e
parent 89 825c4613e087
permissions -rw-r--r--
some stuff, don't remember what
89
825c4613e087 merge branches/no-netsession@89 into trunk
terom
parents:
diff changeset
     1
#ifndef NETWORK_NODE_HH
825c4613e087 merge branches/no-netsession@89 into trunk
terom
parents:
diff changeset
     2
#define NETWORK_NODE_HH
825c4613e087 merge branches/no-netsession@89 into trunk
terom
parents:
diff changeset
     3
825c4613e087 merge branches/no-netsession@89 into trunk
terom
parents:
diff changeset
     4
// forward-declare
825c4613e087 merge branches/no-netsession@89 into trunk
terom
parents:
diff changeset
     5
class NetworkNode;
825c4613e087 merge branches/no-netsession@89 into trunk
terom
parents:
diff changeset
     6
825c4613e087 merge branches/no-netsession@89 into trunk
terom
parents:
diff changeset
     7
enum NetworkNodeType {
825c4613e087 merge branches/no-netsession@89 into trunk
terom
parents:
diff changeset
     8
    NETWORK_NODE_SERVER_CLIENT,
825c4613e087 merge branches/no-netsession@89 into trunk
terom
parents:
diff changeset
     9
    NETWORK_NODE_CLIENT_SERVER
825c4613e087 merge branches/no-netsession@89 into trunk
terom
parents:
diff changeset
    10
};
825c4613e087 merge branches/no-netsession@89 into trunk
terom
parents:
diff changeset
    11
825c4613e087 merge branches/no-netsession@89 into trunk
terom
parents:
diff changeset
    12
#include "NetworkTCP.hh"
825c4613e087 merge branches/no-netsession@89 into trunk
terom
parents:
diff changeset
    13
#include "NetworkUDP.hh"
825c4613e087 merge branches/no-netsession@89 into trunk
terom
parents:
diff changeset
    14
#include "NetworkSession.hh"
825c4613e087 merge branches/no-netsession@89 into trunk
terom
parents:
diff changeset
    15
825c4613e087 merge branches/no-netsession@89 into trunk
terom
parents:
diff changeset
    16
class NetworkNode {
825c4613e087 merge branches/no-netsession@89 into trunk
terom
parents:
diff changeset
    17
    private:
825c4613e087 merge branches/no-netsession@89 into trunk
terom
parents:
diff changeset
    18
        NetworkSession &session;
825c4613e087 merge branches/no-netsession@89 into trunk
terom
parents:
diff changeset
    19
        NetworkTCPTransport *tcp;
825c4613e087 merge branches/no-netsession@89 into trunk
terom
parents:
diff changeset
    20
        NetworkUDP *udp;
825c4613e087 merge branches/no-netsession@89 into trunk
terom
parents:
diff changeset
    21
        const NetworkAddress address;
825c4613e087 merge branches/no-netsession@89 into trunk
terom
parents:
diff changeset
    22
825c4613e087 merge branches/no-netsession@89 into trunk
terom
parents:
diff changeset
    23
        CL_SlotContainer slots;
825c4613e087 merge branches/no-netsession@89 into trunk
terom
parents:
diff changeset
    24
    
825c4613e087 merge branches/no-netsession@89 into trunk
terom
parents:
diff changeset
    25
    public:
825c4613e087 merge branches/no-netsession@89 into trunk
terom
parents:
diff changeset
    26
        NetworkNode (NetworkSession &session, NetworkTCPTransport *tcp, NetworkUDP *udp, const NetworkAddress &address);
825c4613e087 merge branches/no-netsession@89 into trunk
terom
parents:
diff changeset
    27
        
825c4613e087 merge branches/no-netsession@89 into trunk
terom
parents:
diff changeset
    28
    private:
825c4613e087 merge branches/no-netsession@89 into trunk
terom
parents:
diff changeset
    29
        NetworkNode (const NetworkNode &copy);
825c4613e087 merge branches/no-netsession@89 into trunk
terom
parents:
diff changeset
    30
        ~NetworkNode (void);
825c4613e087 merge branches/no-netsession@89 into trunk
terom
parents:
diff changeset
    31
        NetworkNode& operator= (const NetworkNode &copy);
825c4613e087 merge branches/no-netsession@89 into trunk
terom
parents:
diff changeset
    32
        
825c4613e087 merge branches/no-netsession@89 into trunk
terom
parents:
diff changeset
    33
        void on_disconnect (void);
825c4613e087 merge branches/no-netsession@89 into trunk
terom
parents:
diff changeset
    34
         
825c4613e087 merge branches/no-netsession@89 into trunk
terom
parents:
diff changeset
    35
        CL_Signal_v0 _sig_disconnected;
825c4613e087 merge branches/no-netsession@89 into trunk
terom
parents:
diff changeset
    36
825c4613e087 merge branches/no-netsession@89 into trunk
terom
parents:
diff changeset
    37
    public:
825c4613e087 merge branches/no-netsession@89 into trunk
terom
parents:
diff changeset
    38
        void send (NetworkChannelID channel_id, const NetworkPacket &pkt, bool reliable = true);
825c4613e087 merge branches/no-netsession@89 into trunk
terom
parents:
diff changeset
    39
825c4613e087 merge branches/no-netsession@89 into trunk
terom
parents:
diff changeset
    40
        const NetworkAddress& getRemoteAddress (void);
825c4613e087 merge branches/no-netsession@89 into trunk
terom
parents:
diff changeset
    41
        
825c4613e087 merge branches/no-netsession@89 into trunk
terom
parents:
diff changeset
    42
        CL_Signal_v0& sig_disconnected (void) { return _sig_disconnected; }
825c4613e087 merge branches/no-netsession@89 into trunk
terom
parents:
diff changeset
    43
};
825c4613e087 merge branches/no-netsession@89 into trunk
terom
parents:
diff changeset
    44
825c4613e087 merge branches/no-netsession@89 into trunk
terom
parents:
diff changeset
    45
#endif /* NETWORK_NODE_HH */