]> granicus.if.org Git - icinga2/commitdiff
Cleaned up (Un)RegisterMethod methods.
authorGunnar Beutner <gunnar.beutner@netways.de>
Tue, 3 Apr 2012 16:10:16 +0000 (18:10 +0200)
committerGunnar Beutner <gunnar.beutner@netways.de>
Tue, 3 Apr 2012 16:10:16 +0000 (18:10 +0200)
jsonrpc/connectionmanager.cpp
jsonrpc/connectionmanager.h

index 681d5fb0bc129a96aa5e3b19ff41a885e506cdb9..c4a8566f320b0937fbd0e249d439c8283cd9bcfb 100644 (file)
@@ -66,25 +66,17 @@ int ConnectionManager::NewMessageHandler(NewMessageEventArgs::Ptr nmea)
 
 void ConnectionManager::RegisterMethod(string method, function<int (NewMessageEventArgs::Ptr)> callback)
 {
-       map<string, event<NewMessageEventArgs::Ptr> >::iterator i;
-       i = m_Methods.find(method);
-
-       if (i == m_Methods.end()) {
-               m_Methods[method] = event<NewMessageEventArgs::Ptr>();
-               i = m_Methods.find(method);
-       }
-
-       i->second += callback;
+       m_Methods[method] += callback;
 }
 
-void ConnectionManager::UnregisterMethod(string method, function<int (NewMessageEventArgs::Ptr)> function)
+void ConnectionManager::UnregisterMethod(string method, function<int (NewMessageEventArgs::Ptr)> callback)
 {
-       // TODO: implement
+       m_Methods[method] -= callback;
 }
 
 void ConnectionManager::SendMessage(JsonRpcMessage::Ptr message)
 {
-       /* TODO: filter messages based on event subscriptions */
+       /* TODO: filter messages based on event subscriptions; also loopback message to our own handlers */
        for (list<JsonRpcClient::Ptr>::iterator i = m_Clients.begin(); i != m_Clients.end(); i++)
        {
                JsonRpcClient::Ptr client = *i;
index 72a4563b24eaf34b2c9787e1919b13cf53fc1ea5..62b049be172caf16866748e23d3595b8a0c97ed2 100644 (file)
@@ -24,8 +24,8 @@ public:
        void RegisterClient(JsonRpcClient::Ptr client);
        void UnregisterClient(JsonRpcClient::Ptr client);
 
-       void RegisterMethod(string method, function<int (NewMessageEventArgs::Ptr)> function);
-       void UnregisterMethod(string method, function<int (NewMessageEventArgs::Ptr)> function);
+       void RegisterMethod(string method, function<int (NewMessageEventArgs::Ptr)> callback);
+       void UnregisterMethod(string method, function<int (NewMessageEventArgs::Ptr)> callback);
 
        void SendMessage(JsonRpcMessage::Ptr message);
 };