summaryrefslogtreecommitdiffstats
path: root/src/Common/RequestManager.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/Common/RequestManager.h')
-rw-r--r--src/Common/RequestManager.h21
1 files changed, 13 insertions, 8 deletions
diff --git a/src/Common/RequestManager.h b/src/Common/RequestManager.h
index 723e619..0bc8080 100644
--- a/src/Common/RequestManager.h
+++ b/src/Common/RequestManager.h
@@ -20,7 +20,7 @@
#ifndef MAD_COMMON_REQUESTMANAGER_H_
#define MAD_COMMON_REQUESTMANAGER_H_
-#include "Initializable.h"
+#include "SingletonPtr.h"
#include <Net/Connection.h>
#include <map>
@@ -32,7 +32,7 @@ namespace Common {
class RequestBase;
class RequestHandler;
-class RequestManager : public Initializable {
+class RequestManager {
private:
class RequestMap : private std::map<uint16_t,RequestHandler*> {
private:
@@ -65,7 +65,7 @@ class RequestManager : public Initializable {
}
};
- static RequestManager requestManager;
+ static SingletonPtr<RequestManager> requestManager;
std::map<Net::Connection*,RequestMap*> requestMaps;
bool core;
@@ -81,19 +81,24 @@ class RequestManager : public Initializable {
RequestManager(const RequestManager &o);
RequestManager& operator=(const RequestManager &o);
- RequestManager();
-
void receiveHandler(Net::Connection *connection, const Net::Packet &packet);
public:
static RequestManager* get() {
- return &requestManager;
+ return requestManager.get();
}
+ RequestManager();
+
bool isCore() const {return core;}
- void setCore(bool newCore) {core = newCore;}
+ void setCore(bool newCore) {
+ core = newCore;
- virtual void doInit() {requestId = core ? -2 : -1;}
+ if(core)
+ requestId &= ~0x01;
+ else
+ requestId |= 0x01;
+ }
void registerConnection(Net::Connection *connection);
void unregisterConnection(Net::Connection *connection);