diff options
author | Matthias Schiffer <matthias@gamezock.de> | 2008-10-27 22:41:06 +0100 |
---|---|---|
committer | Matthias Schiffer <matthias@gamezock.de> | 2008-10-27 22:41:06 +0100 |
commit | 2b83ae7c71dc706fb4fd7b4efc4a8ffee8dfe522 (patch) | |
tree | 4f63c64041fd93255105493fd444a65ad0761b9b /src/Common/RequestManager.h | |
parent | b58831e5eec4d0595099b8e9c2979b157fe37041 (diff) | |
download | mad-2b83ae7c71dc706fb4fd7b4efc4a8ffee8dfe522.tar mad-2b83ae7c71dc706fb4fd7b4efc4a8ffee8dfe522.zip |
Neues Initialisierung-Framework hinzugef?gt
Diffstat (limited to 'src/Common/RequestManager.h')
-rw-r--r-- | src/Common/RequestManager.h | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/src/Common/RequestManager.h b/src/Common/RequestManager.h index 2013860..b0002d0 100644 --- a/src/Common/RequestManager.h +++ b/src/Common/RequestManager.h @@ -20,19 +20,19 @@ #ifndef MAD_COMMON_REQUESTMANAGER_H_ #define MAD_COMMON_REQUESTMANAGER_H_ +#include "Initializable.h" #include <Net/Connection.h> #include <map> #include <memory> - namespace Mad { namespace Common { class RequestBase; class RequestHandler; -class RequestManager { +class RequestManager : public Initializable { private: class RequestMap : private std::map<uint16_t,RequestHandler*> { private: @@ -65,9 +65,10 @@ class RequestManager { } }; - static std::auto_ptr<RequestManager> requestManager; + static RequestManager requestManager; std::map<Net::Connection*,RequestMap*> requestMaps; + bool core; uint16_t requestId; std::map<Net::Packet::Type,RequestHandlerFactory*> requestHandlerFactories; @@ -80,19 +81,20 @@ class RequestManager { RequestManager(const RequestManager &o); RequestManager& operator=(const RequestManager &o); - RequestManager(bool core); + RequestManager(); void receiveHandler(Net::Connection *connection, const Net::Packet &packet); public: - static void init(bool core) { - requestManager = std::auto_ptr<RequestManager>(new RequestManager(core)); - } - static RequestManager* getRequestManager() { - return requestManager.get(); + return &requestManager; } + bool isCore() const {return core;} + void setCore(bool newCore) {core = newCore;} + + virtual void doInit() {requestId = core ? -2 : -1;} + void registerConnection(Net::Connection *connection); void unregisterConnection(Net::Connection *connection); |