summaryrefslogtreecommitdiffstats
path: root/src/Common/RequestManager.h
diff options
context:
space:
mode:
authorMatthias Schiffer <matthias@gamezock.de>2008-09-13 03:59:58 +0200
committerMatthias Schiffer <matthias@gamezock.de>2008-09-13 03:59:58 +0200
commit7e87778a02f3d37865c10051a3f14038bbbcbaef (patch)
treeb1853c2e1d94d0d8d7d87b3e5db73fa618019b29 /src/Common/RequestManager.h
parent920c506d477bd7f357e05590e8cdedf8e5e8a1b8 (diff)
downloadmad-7e87778a02f3d37865c10051a3f14038bbbcbaef.tar
mad-7e87778a02f3d37865c10051a3f14038bbbcbaef.zip
Benutze weniger Inline-Funktionen
Diffstat (limited to 'src/Common/RequestManager.h')
-rw-r--r--src/Common/RequestManager.h59
1 files changed, 6 insertions, 53 deletions
diff --git a/src/Common/RequestManager.h b/src/Common/RequestManager.h
index 68510f9..e7a8e7b 100644
--- a/src/Common/RequestManager.h
+++ b/src/Common/RequestManager.h
@@ -41,7 +41,6 @@ class RequestManager {
public:
RequestMap() {}
-
~RequestMap() {
for(iterator it = begin(); it != end(); ++it)
delete it->second;
@@ -51,24 +50,8 @@ class RequestManager {
return insert(std::make_pair(id, info)).second;
}
- RequestHandler::RequestHandler* findRequest(uint16_t id) {
- iterator it = find(id);
- if(it == end())
- return 0;
-
- return it->second;
- }
-
- bool deleteRequest(uint16_t id) {
- iterator it = find(id);
- if(it == end())
- return false;
-
- delete it->second;
-
- erase(it);
- return true;
- }
+ RequestHandler::RequestHandler* findRequest(uint16_t id);
+ bool deleteRequest(uint16_t id);
};
class RequestHandlerFactory {
@@ -103,49 +86,19 @@ class RequestManager {
void receiveHandler(Net::Connection *connection, const Net::Packet &packet);
public:
- void registerConnection(Net::Connection *connection) {
- requestMaps.insert(std::make_pair(connection, new RequestMap()));
-
- connection->signalReceive().connect(sigc::mem_fun(this, &RequestManager::receiveHandler));
- }
-
- void unregisterConnection(Net::Connection *connection) {
- std::map<Net::Connection*,RequestMap*>::iterator it = requestMaps.find(connection);
-
- if(it == requestMaps.end())
- return;
-
- delete it->second;
-
- requestMaps.erase(it);
- }
+ void registerConnection(Net::Connection *connection);
+ void unregisterConnection(Net::Connection *connection);
template <class T> void registerPacketType(Net::Packet::Type type) {
requestHandlerFactories.insert(std::make_pair(type, new SpecificRequestHandlerFactory<T>()));
}
- void unregisterPacketType(Net::Packet::Type type) {
- std::map<Net::Packet::Type,RequestHandlerFactory*>::iterator it = requestHandlerFactories.find(type);
-
- if(it == requestHandlerFactories.end())
- return;
-
- delete it->second;
-
- requestHandlerFactories.erase(it);
- }
+ void unregisterPacketType(Net::Packet::Type type);
bool sendRequest(Net::Connection *connection, Request::Request *request);
RequestManager(bool core);
-
- virtual ~RequestManager() {
- for(std::map<Net::Connection*,RequestMap*>::iterator it = requestMaps.begin(); it != requestMaps.end(); ++it)
- delete it->second;
-
- for(std::map<Net::Packet::Type,RequestHandlerFactory*>::iterator it = requestHandlerFactories.begin(); it != requestHandlerFactories.end(); ++it)
- delete it->second;
- }
+ virtual ~RequestManager();
};
}