Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: orxonox.OLD/trunk/src/lib/network/network_manager.h @ 7954

Last change on this file since 7954 was 7954, checked in by patrick, 18 years ago

trunk: merged the network branche back to trunk.

File size: 2.2 KB
RevLine 
[5521]1/*!
2 * @file network_manager.h
3  *  Main interface for the network module. Manages all the modules
4*/
5
[5533]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*/
[6695]8#ifndef _NETWORK_MANAGER
[5521]9#define _NETWORK_MANAGER
10
[5647]11/* include this file, it contains some default definitions */
12#include "netdefs.h"
[6695]13#include "shared_network_data.h"
[5533]14
15/* include base_object.h since all classes are derived from this one */
[5521]16#include "base_object.h"
17
[5647]18
[5572]19/* forward declarations for the header file (include the header via #include "bla.h" in the source file) */
[5566]20class NetworkStream;
[5572]21class Synchronizeable;
[5996]22template<typename>
23class tList;
[5521]24
[5566]25/* and here is the class itsself*/
[5521]26class NetworkManager : public BaseObject
27{
28
[5996]29  public:
[5521]30
[5996]31    inline static NetworkManager* getInstance() { if (!NetworkManager::singletonRef) NetworkManager::singletonRef = new NetworkManager();
32      return NetworkManager::singletonRef; }
[6981]33    virtual ~NetworkManager();
[5533]34
[5996]35    void initialize();
36    void shutdown();
[5804]37
[7256]38    int establishConnection( const std::string & name, unsigned int port);
[5996]39    int createServer(unsigned int port);
[5804]40
[5997]41    /** Returns the hostID @return The hostID of the object */
[6695]42    inline int getHostID() { return this->sharedNetworkData->getHostID(); }
43    inline bool isGameServer() { return this->sharedNetworkData->isGameServer(); }
[5997]44
[6139]45
[5996]46    void connectSynchronizeable(Synchronizeable& sync);
[7954]47    void synchronize(float dtS);
[5804]48
[6695]49    void debug();
50
51
[6139]52  private:
[5996]53    NetworkManager();
54
55
56  private:
[6139]57    const std::list<BaseObject*>*    netStreamList;           // list with refs to all network streams
58    const std::list<BaseObject*>*    syncList;                // list of synchronizeables
59    static NetworkManager*           singletonRef;            //!< Pointer to the only instance of this Class
[6695]60    NetworkStream*                   defaultSyncStream;       //!< FIXME: this is only for testing purposes
[5996]61
[6695]62    SharedNetworkData*               sharedNetworkData;       //!< reference to the shared data
[7954]63    float                            elapsedTime;             //!< elapsed time since the last network update
[5521]64};
65
66
67
68#endif /* _NETWORK_MANAGER */
Note: See TracBrowser for help on using the repository browser.