Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: orxonox.OLD/trunk/src/lib/network/proxy/proxy_control.h @ 10497

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

orxonox/trunk: merged the new_class_id branche back to the trunk.
merged with command:
svn merge https://svn.orxonox.net/orxonox/branches/new_class_id trunk -r9683:HEAD
no conflicts… puh..

File size: 2.0 KB
Line 
1/*!
2 * @file player_stats.h
3 * @brief Definition of ProxyControl
4 *
5 * manages the clients on the proxies (connect/disconnect)
6 */
7
8#ifndef _PROXY_SETTINGS_H
9#define _PROXY_SETTINGS_H
10
11#include "synchronizeable.h"
12#include "message_manager.h"
13
14#include <string>
15#include <list>
16
17
18typedef enum proxyCommand {
19  PXY_RECONNECT              = 0,              //!< forces a reconnection of the node
20
21  PXY_WEAKUP,                                  //!< signal to weakup a sleeping proxy server (not impl. yet)
22  PXY_SLEEP,                                   //!< signal to sleep and disconnect clients
23
24  PXY_NUMBER
25};
26
27
28
29//! A class for storing player information
30class ProxyControl : public Synchronizeable
31{
32  ObjectListDeclaration(ProxyControl);
33  public:
34    inline static ProxyControl* getInstance() { if (!ProxyControl::singletonRef) ProxyControl::singletonRef = new ProxyControl();
35      return ProxyControl::singletonRef; }
36    virtual ~ProxyControl();
37
38    virtual void varChangeHandler( std::list<int> & id );
39
40    /* connection signal handling */
41    void signalNewClient(int userId);
42    static bool messageHandlerNewClient( MessageType messageType, byte * data, int dataLength, void * someData, int senderId, int destinationId  );
43
44    void signalLeaveClient(int userId);
45    static bool messageHandlerLeaveClient( MessageType messageType, byte * data, int dataLength, void * someData, int senderId, int destinationId  );
46
47    /* proxy server network control */
48    void forceReconnectionShellThumb();
49    void forceReconnectionShell(int userId, int serverId);
50    void forceReconnection(int userId, int serverId);
51    void forceReconnection(int userId, int serverId, IP newAddress);
52    void forceReconnection(int userId, const std::string& newAddress);
53    static bool messageHandlerCommand( MessageType messageType, byte * data, int dataLength, void * someData, int senderId, int destinationId  );
54
55  private:
56    ProxyControl();
57
58
59  private:
60    static ProxyControl*      singletonRef;            //!< Pointer to the only instance of this Class
61
62
63};
64
65#endif /* _PROXY_SETTINGS_H */
Note: See TracBrowser for help on using the repository browser.