src/proto2/NetworkNode.hh
author terom
Thu, 20 Nov 2008 19:25:56 +0000
branchno-netsession
changeset 36 785d220fc6b7
parent 33 e53f09b378f4
child 37 ed2957490bbf
permissions -rw-r--r--
...
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
33
e53f09b378f4 more untested, uncompiled code
terom
parents:
diff changeset
     7
#include "NetworkTCP.hh"
36
terom
parents: 33
diff changeset
     8
#include "NetworkUDP.hh"
terom
parents: 33
diff changeset
     9
#include "NetworkSession.hh"
terom
parents: 33
diff changeset
    10
terom
parents: 33
diff changeset
    11
enum NetworkNodeType {
terom
parents: 33
diff changeset
    12
    NETWORK_NODE_SERVER_CLIENT,
terom
parents: 33
diff changeset
    13
    NETWORK_NODE_CLIENT_SERVER
terom
parents: 33
diff changeset
    14
};
33
e53f09b378f4 more untested, uncompiled code
terom
parents:
diff changeset
    15
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;
e53f09b378f4 more untested, uncompiled code
terom
parents:
diff changeset
    20
        NetworkUDP &udp;
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
    
e53f09b378f4 more untested, uncompiled code
terom
parents:
diff changeset
    25
    private:
e53f09b378f4 more untested, uncompiled code
terom
parents:
diff changeset
    26
        NetworkNode (NetworkSession &session, NetworkTCPTransport *tcp, NetworkUDP &udp, const NetworkAddress &address);
e53f09b378f4 more untested, uncompiled code
terom
parents:
diff changeset
    27
        
36
terom
parents: 33
diff changeset
    28
        NetworkNode (const NetworkNode &copy);
33
e53f09b378f4 more untested, uncompiled code
terom
parents:
diff changeset
    29
        ~NetworkNode (void);
36
terom
parents: 33
diff changeset
    30
        NetworkNode& operator= (const NetworkNode &copy);
terom
parents: 33
diff changeset
    31
        
terom
parents: 33
diff changeset
    32
        void on_disconnect (void);
terom
parents: 33
diff changeset
    33
         
terom
parents: 33
diff changeset
    34
        CL_Signal_v0 _sig_disconnected;
33
e53f09b378f4 more untested, uncompiled code
terom
parents:
diff changeset
    35
e53f09b378f4 more untested, uncompiled code
terom
parents:
diff changeset
    36
    public:
e53f09b378f4 more untested, uncompiled code
terom
parents:
diff changeset
    37
        void send (NetworkChannelID channel_id, const NetworkPacket &pkt, bool reliable = true);
e53f09b378f4 more untested, uncompiled code
terom
parents:
diff changeset
    38
e53f09b378f4 more untested, uncompiled code
terom
parents:
diff changeset
    39
        const NetworkAddress& getRemoteAddress (void);
36
terom
parents: 33
diff changeset
    40
        
terom
parents: 33
diff changeset
    41
        CL_Signal_v0& sig_disconnected (void) { return _sig_disconnected; }
33
e53f09b378f4 more untested, uncompiled code
terom
parents:
diff changeset
    42
};
e53f09b378f4 more untested, uncompiled code
terom
parents:
diff changeset
    43
e53f09b378f4 more untested, uncompiled code
terom
parents:
diff changeset
    44
#endif /* NETWORK_NODE_HH */