Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: orxonox.OLD/branches/proxy/src/lib/network/monitor/network_node.h @ 9347

Last change on this file since 9347 was 9347, checked in by bensch, 18 years ago

orxonox/proxy: merged the proxy.old back again, and it seems to work.

Merged with command
svn merge -r9247:HEAD https://svn.orxonox.net/orxonox/branches/proxy.old .

no conflicts

File size: 2.1 KB
Line 
1/*!
2 * @file network_node.h
3 *  a class representing a node in the network (this can be a MASTER_SERVER, PROXY_SERVER or a CLIENT
4 */
5
6#ifndef _NETWORK_NODE_H
7#define _NETWORK_NODE_H
8
9#include "base_object.h"
10#include "synchronizeable.h"
11#include "peer_info.h"
12
13#include <list>
14
15
16//!< a class representing a node in the network (this can be a MASTER_SERVER, PROXY_SERVER or a CLIENT
17class NetworkNode
18{
19  public:
20    NetworkNode(PeerInfo* pInfo);
21    ~NetworkNode();
22
23
24    void addClient(PeerInfo* node);
25    void addActiveProxyServer(PeerInfo* node);
26    void addPassiveProxyServer(PeerInfo* node);
27    void addMasterServer(PeerInfo* node);
28
29    void removeClient(PeerInfo* node);
30    void removeActiveProxyServer(PeerInfo* node);
31    void removePassiveProxyServer(PeerInfo* node);
32    void removeMasterServer(PeerInfo* node);
33
34    PeerInfo* getClient(int index);
35    PeerInfo* getActiveProxyServer(int index);
36    PeerInfo* getPassiveProxyServer(int index);
37    PeerInfo* getMasterServer(int index);
38
39    /** @returns the number of players */
40    inline int getPlayerNumber() { return this->playerNumber; }
41    /** @returns the node type of this node */
42    inline int getNodeType() { return this->peerInfo->nodeType; }
43    /** @returns the peer info of this node */
44    inline PeerInfo* getPeerInfo() { return this->peerInfo; }
45
46    void debug(int depth);
47
48
49  private:
50    int                          playerNumber;                 //!< localy direct connected player number
51    PeerInfo*                    peerInfo;                     //!< the peer informationa about this node
52
53    /* network nodes directly connected to this node */
54    std::list<PeerInfo*>         clientList;                   //!< list of all clients in the network
55    std::list<PeerInfo*>         activeProxyServerList;        //!< list of all proxy servers in the network
56    std::list<PeerInfo*>         passiveProxyServerList;       //!< list of all proxy servers in the network
57    std::list<PeerInfo*>         masterServerList;             //!< list of all master servers in the network (should be 1!! :D)
58
59};
60
61#endif /* _NETWORK_NODE_H */
Note: See TracBrowser for help on using the repository browser.