From 7e87778a02f3d37865c10051a3f14038bbbcbaef Mon Sep 17 00:00:00 2001 From: Matthias Schiffer Date: Sat, 13 Sep 2008 03:59:58 +0200 Subject: Benutze weniger Inline-Funktionen --- src/Common/RequestManager.h | 59 +++++---------------------------------------- 1 file changed, 6 insertions(+), 53 deletions(-) (limited to 'src/Common/RequestManager.h') 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::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 void registerPacketType(Net::Packet::Type type) { requestHandlerFactories.insert(std::make_pair(type, new SpecificRequestHandlerFactory())); } - void unregisterPacketType(Net::Packet::Type type) { - std::map::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::iterator it = requestMaps.begin(); it != requestMaps.end(); ++it) - delete it->second; - - for(std::map::iterator it = requestHandlerFactories.begin(); it != requestHandlerFactories.end(); ++it) - delete it->second; - } + virtual ~RequestManager(); }; } -- cgit v1.2.3