diff options
author | Matthias Schiffer <matthias@gamezock.de> | 2008-09-14 23:16:58 +0200 |
---|---|---|
committer | Matthias Schiffer <matthias@gamezock.de> | 2008-09-14 23:16:58 +0200 |
commit | 082dac7a8cb39ec1b005680680c4f3e1e8ddc256 (patch) | |
tree | 1db7b02d84cdd1882e15d3a1abfd8e93925a4af6 /src/Common/RequestManager.h | |
parent | fd9b1506a3b3858235e91cce45805f6d54caae4f (diff) | |
download | mad-082dac7a8cb39ec1b005680680c4f3e1e8ddc256.tar mad-082dac7a8cb39ec1b005680680c4f3e1e8ddc256.zip |
Verwende statische Instanzen von ConfigManager, ConnectionManager und RequestManager (Singleton)
Diffstat (limited to 'src/Common/RequestManager.h')
-rw-r--r-- | src/Common/RequestManager.h | 22 |
1 files changed, 18 insertions, 4 deletions
diff --git a/src/Common/RequestManager.h b/src/Common/RequestManager.h index 2ca10e7..795f277 100644 --- a/src/Common/RequestManager.h +++ b/src/Common/RequestManager.h @@ -22,7 +22,10 @@ #include "RequestHandler.h" #include <Net/Connection.h> + #include <map> +#include <memory> + namespace Mad { namespace Common { @@ -68,9 +71,7 @@ class RequestManager { } }; - // Prevent shallow copy - RequestManager(const RequestManager &o); - RequestManager& operator=(const RequestManager &o); + static std::auto_ptr<RequestManager> requestManager; std::map<Net::Connection*,RequestMap*> requestMaps; uint16_t requestId; @@ -81,9 +82,23 @@ class RequestManager { return requestId+=2; } + // Prevent shallow copy + RequestManager(const RequestManager &o); + RequestManager& operator=(const RequestManager &o); + + RequestManager(bool core); + 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(); + } + void registerConnection(Net::Connection *connection); void unregisterConnection(Net::Connection *connection); @@ -95,7 +110,6 @@ class RequestManager { bool sendRequest(Net::Connection *connection, Request *request); - RequestManager(bool core); virtual ~RequestManager(); }; |