summaryrefslogtreecommitdiffstats
path: root/src/Common/RequestManager.h
diff options
context:
space:
mode:
authorMatthias Schiffer <matthias@gamezock.de>2008-09-14 23:16:58 +0200
committerMatthias Schiffer <matthias@gamezock.de>2008-09-14 23:16:58 +0200
commit082dac7a8cb39ec1b005680680c4f3e1e8ddc256 (patch)
tree1db7b02d84cdd1882e15d3a1abfd8e93925a4af6 /src/Common/RequestManager.h
parentfd9b1506a3b3858235e91cce45805f6d54caae4f (diff)
downloadmad-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.h22
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();
};