Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: orxonox.OLD/branches/proxy/src/lib/network/network_manager.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_manager.h
3  *  Main interface for the network module. Manages all the modules
4*/
5
6/* you will want to add such a a line at your header file also, since it will
7   prevent c++ from including your code twice*/
8#ifndef _NETWORK_MANAGER
9#define _NETWORK_MANAGER
10
11/* include this file, it contains some default definitions */
12#include "netdefs.h"
13#include "shared_network_data.h"
14
15/* include base_object.h since all classes are derived from this one */
16#include "base_object.h"
17
18
19/* forward declarations for the header file (include the header via #include "bla.h" in the source file) */
20class NetworkStream;
21class Synchronizeable;
22template<typename>
23class tList;
24
25/* and here is the class itsself*/
26class NetworkManager : public BaseObject
27{
28
29  public:
30
31    inline static NetworkManager* getInstance() { if (!NetworkManager::singletonRef) NetworkManager::singletonRef = new NetworkManager();
32      return NetworkManager::singletonRef; }
33    virtual ~NetworkManager();
34
35    void initialize();
36    void shutdown();
37
38    int establishConnection( const std::string & name, unsigned int port);
39    int createServer(unsigned int port);
40
41    /** Returns the hostID @return The hostID of the object */
42    inline int getHostID() { return SharedNetworkData::getInstance()->getHostID(); }
43    inline bool isMasterServer() { return SharedNetworkData::getInstance()->isMasterServer(); }
44    inline bool isProxyServer() { return SharedNetworkData::getInstance()->isProxyServer(); }
45    inline bool isClient() { return SharedNetworkData::getInstance()->isClient(); }
46
47
48    void connectSynchronizeable(Synchronizeable& sync);
49    void synchronize(float dtS);
50
51    void debug();
52
53
54  private:
55    NetworkManager();
56
57
58  private:
59    static NetworkManager*           singletonRef;            //!< Pointer to the only instance of this Class
60    NetworkStream*                   networkStream;       //!< pointer to network stream
61
62    float                            elapsedTime;             //!< elapsed time since the last network update
63};
64
65
66
67#endif /* _NETWORK_MANAGER */
Note: See TracBrowser for help on using the repository browser.