src/proto2/NetworkNode.hh
author terom
Thu, 20 Nov 2008 20:27:12 +0000
branchno-netsession
changeset 37 ed2957490bbf
parent 36 785d220fc6b7
permissions -rw-r--r--
compile step complete
33
e53f09b378f4 more untested, uncompiled code
terom
parents:
diff changeset
     1
#ifndef NETWORK_NODE_HH
e53f09b378f4 more untested, uncompiled code
terom
parents:
diff changeset
     2
#define NETWORK_NODE_HH
e53f09b378f4 more untested, uncompiled code
terom
parents:
diff changeset
     3
36
terom
parents: 33
diff changeset
     4
// forward-declare
terom
parents: 33
diff changeset
     5
class NetworkNode;
terom
parents: 33
diff changeset
     6
terom
parents: 33
diff changeset
     7
enum NetworkNodeType {
terom
parents: 33
diff changeset
     8
    NETWORK_NODE_SERVER_CLIENT,
terom
parents: 33
diff changeset
     9
    NETWORK_NODE_CLIENT_SERVER
terom
parents: 33
diff changeset
    10
};
33
e53f09b378f4 more untested, uncompiled code
terom
parents:
diff changeset
    11
37
ed2957490bbf compile step complete
terom
parents: 36
diff changeset
    12
#include "NetworkTCP.hh"
ed2957490bbf compile step complete
terom
parents: 36
diff changeset
    13
#include "NetworkUDP.hh"
ed2957490bbf compile step complete
terom
parents: 36
diff changeset
    14
#include "NetworkSession.hh"
ed2957490bbf compile step complete
terom
parents: 36
diff changeset
    15
33
e53f09b378f4 more untested, uncompiled code
terom
parents:
diff changeset
    16
class NetworkNode {
e53f09b378f4 more untested, uncompiled code
terom
parents:
diff changeset
    17
    private:
e53f09b378f4 more untested, uncompiled code
terom
parents:
diff changeset
    18
        NetworkSession &session;
e53f09b378f4 more untested, uncompiled code
terom
parents:
diff changeset
    19
        NetworkTCPTransport *tcp;
37
ed2957490bbf compile step complete
terom
parents: 36
diff changeset
    20
        NetworkUDP *udp;
33
e53f09b378f4 more untested, uncompiled code
terom
parents:
diff changeset
    21
        const NetworkAddress address;
e53f09b378f4 more untested, uncompiled code
terom
parents:
diff changeset
    22
e53f09b378f4 more untested, uncompiled code
terom
parents:
diff changeset
    23
        CL_SlotContainer slots;
e53f09b378f4 more untested, uncompiled code
terom
parents:
diff changeset
    24
    
37
ed2957490bbf compile step complete
terom
parents: 36
diff changeset
    25
    public:
ed2957490bbf compile step complete
terom
parents: 36
diff changeset
    26
        NetworkNode (NetworkSession &session, NetworkTCPTransport *tcp, NetworkUDP *udp, const NetworkAddress &address);
ed2957490bbf compile step complete
terom
parents: 36
diff changeset
    27
        
33
e53f09b378f4 more untested, uncompiled code
terom
parents:
diff changeset
    28
    private:
36
terom
parents: 33
diff changeset
    29
        NetworkNode (const NetworkNode &copy);
33
e53f09b378f4 more untested, uncompiled code
terom
parents:
diff changeset
    30
        ~NetworkNode (void);
36
terom
parents: 33
diff changeset
    31
        NetworkNode& operator= (const NetworkNode &copy);
terom
parents: 33
diff changeset
    32
        
terom
parents: 33
diff changeset
    33
        void on_disconnect (void);
terom
parents: 33
diff changeset
    34
         
terom
parents: 33
diff changeset
    35
        CL_Signal_v0 _sig_disconnected;
33
e53f09b378f4 more untested, uncompiled code
terom
parents:
diff changeset
    36
e53f09b378f4 more untested, uncompiled code
terom
parents:
diff changeset
    37
    public:
e53f09b378f4 more untested, uncompiled code
terom
parents:
diff changeset
    38
        void send (NetworkChannelID channel_id, const NetworkPacket &pkt, bool reliable = true);
e53f09b378f4 more untested, uncompiled code
terom
parents:
diff changeset
    39
e53f09b378f4 more untested, uncompiled code
terom
parents:
diff changeset
    40
        const NetworkAddress& getRemoteAddress (void);
36
terom
parents: 33
diff changeset
    41
        
terom
parents: 33
diff changeset
    42
        CL_Signal_v0& sig_disconnected (void) { return _sig_disconnected; }
33
e53f09b378f4 more untested, uncompiled code
terom
parents:
diff changeset
    43
};
e53f09b378f4 more untested, uncompiled code
terom
parents:
diff changeset
    44
e53f09b378f4 more untested, uncompiled code
terom
parents:
diff changeset
    45
#endif /* NETWORK_NODE_HH */