diff options
author | Matthias Schiffer <matthias@gamezock.de> | 2009-06-18 22:03:02 +0200 |
---|---|---|
committer | Matthias Schiffer <matthias@gamezock.de> | 2009-06-18 22:03:02 +0200 |
commit | 7234fe326d16d6bf9f4374a09ddc6ef790e6723f (patch) | |
tree | 437d4c40eeb1e9b34b369e4b82064a1572c7dac9 /src/Common/RequestManager.h | |
parent | bf561f8226e97f4ace4f04bddf198175e91ee7f0 (diff) | |
download | mad-7234fe326d16d6bf9f4374a09ddc6ef790e6723f.tar mad-7234fe326d16d6bf9f4374a09ddc6ef790e6723f.zip |
Globale Variablen durch Application-Klasse ersetzt
Diffstat (limited to 'src/Common/RequestManager.h')
-rw-r--r-- | src/Common/RequestManager.h | 34 |
1 files changed, 8 insertions, 26 deletions
diff --git a/src/Common/RequestManager.h b/src/Common/RequestManager.h index 2dd892e..fb67748 100644 --- a/src/Common/RequestManager.h +++ b/src/Common/RequestManager.h @@ -33,8 +33,11 @@ namespace Mad { namespace Common { -class RequestManager : boost::noncopyable { +class Application; + +class RequestManager : private boost::noncopyable { private: + friend class Application; friend class RequestHandler; class RequestMap : private boost::noncopyable { @@ -78,18 +81,17 @@ class RequestManager : boost::noncopyable { return types; } - virtual boost::shared_ptr<RequestHandler> createRequestHandler(const std::string &type _UNUSED_PARAMETER_) { - return boost::shared_ptr<RequestHandler>(new T()); + virtual boost::shared_ptr<RequestHandler> createRequestHandler(Application *application, const std::string &type _UNUSED_PARAMETER_) { + return boost::shared_ptr<RequestHandler>(new T(application)); } }; - static RequestManager requestManager; + Application *application; boost::shared_mutex mutex; RequestMap requestMap; - bool server; boost::uint16_t lastRequestId; std::map<std::string, boost::shared_ptr<RequestHandlerGroup> > requestHandlerGroups; @@ -109,29 +111,9 @@ class RequestManager : boost::noncopyable { bool send(Request *request); - RequestManager(); + RequestManager(Application *application0, bool server); public: - static RequestManager* get() { - return &requestManager; - } - - bool isServer() { - boost::shared_lock<boost::shared_mutex> lock(mutex); - return server; - } - - void setServer(bool newServer) { - boost::lock_guard<boost::shared_mutex> lock(mutex); - - server = newServer; - - if(server) - lastRequestId &= ~0x01; - else - lastRequestId |= 0x01; - } - void registerConnection(Connection *connection); void unregisterConnection(Connection *connection) { |