Fix error handling in event callback API 57/161957/1
authorKrzysztof Jackiewicz <k.jackiewicz@samsung.com>
Tue, 28 Nov 2017 09:18:38 +0000 (10:18 +0100)
committerKrzysztof Jackiewicz <k.jackiewicz@samsung.com>
Tue, 28 Nov 2017 09:20:52 +0000 (10:20 +0100)
Change-Id: If89e767a25c0936dfb485e5f2ba5cc58155d6030

lib/client.cpp
lib/client.h
lib/ode/external-encryption.cpp
lib/ode/internal-encryption.cpp
lib/ode/luks.cpp

index e998a345ddae4fbc821ae3ab9fc6762db795ecd5..55ed3c903585def67f29f9918636f0a8090cc9d2 100644 (file)
@@ -63,15 +63,18 @@ int ClientContext::subscribeSignal(const std::string& name,
        };
 
        try {
-               return client->subscribe<std::string>
+               int ret = client->subscribe<std::string>
                                                        (SUBSCRIBER_REGISTER, name, listenerDispatcher);
+               if (ret < 0)
+                       return ode::error::Unknown;
+               return ret;
        } catch (runtime::Exception& e) {
                std::cout << e.what() << std::endl;
-               return -1;
+               return ode::error::Unknown;
        }
 }
 
-int ClientContext::unsubscribeSignal(int subscriberId)
+void ClientContext::unsubscribeSignal(int subscriberId)
 {
-       return client->unsubscribe(SUBSCRIBER_UNREGISTER, subscriberId);
+       client->unsubscribe(SUBSCRIBER_UNREGISTER, subscriberId);
 }
index 6667d0c4f68db11efd77d4aa3d0243cc594a9608..691e96eeaec277e728a97f0ac6c981dd4c018d18 100644 (file)
@@ -22,6 +22,7 @@
 #include <functional>
 
 #include <klay/rmi/client.h>
+#include <rmi/common.h>
 
 typedef std::function<void(void*)> SignalListener;
 
@@ -44,16 +45,19 @@ public:
         *  encryption and remove this one.
         */
        int subscribeSignal(const std::string& name, const SignalListener& listener, void* data);
-       int unsubscribeSignal(int subscriberId);
+       void unsubscribeSignal(int subscriberId);
 
        template<typename ...Args>
        int subscribeSignal(const std::string& name, const std::function<void(Args...)>& listener)
        {
                try {
-                       return client->subscribe<Args...>(SUBSCRIBER_REGISTER, name, listener);
+                       int ret = client->subscribe<Args...>(SUBSCRIBER_REGISTER, name, listener);
+                       if (ret < 0)
+                               return ode::error::Unknown;
+                       return ret;
                } catch (runtime::Exception& e) {
                        std::cout << e.what() << std::endl;
-                       return -1;
+                       return ode::error::Unknown;
                }
        }
 
index c417528fb03cccd19af03828593fe2125ca3d990..9b2efbceddfbf40f30ffbca0d8f5fe8ba2579a56 100644 (file)
@@ -195,7 +195,10 @@ int ode_external_encryption_set_mount_event_cb(ode_mount_event_cb callback, void
        RET_ON_FAILURE(mountEventCallbackContext->connect() == 0, ODE_ERROR_CONNECTION_REFUSED);
 
        int ret = mountEventCallbackContext->subscribeSignal("ExternalEncryption::mount", callback, user_data);
-       return toApiError(ret);
+       if (ret < 0)
+               return toApiError(ret);
+
+       return ODE_ERROR_NONE;
 }
 
 int ode_external_encryption_unset_mount_event_cb()
index a5f1cfe537d84c2d5f448f6666e74bd03fd7c540..3840114a45a448470f59ac0258e43855a8bf9815 100644 (file)
@@ -195,7 +195,10 @@ int ode_internal_encryption_set_mount_event_cb(ode_mount_event_cb callback, void
        RET_ON_FAILURE(mountEventCallbackContext->connect() == 0, ODE_ERROR_CONNECTION_REFUSED);
 
        int ret = mountEventCallbackContext->subscribeSignal("InternalEncryptionServer::mount", callback, user_data);
-       return toApiError(ret);
+       if (ret < 0)
+               return toApiError(ret);
+
+       return ODE_ERROR_NONE;
 }
 
 int ode_internal_encryption_unset_mount_event_cb()
index 2b53dfb18ebffa507f8cd0a787650d16108a9162..d92e50a5f686be35282e28437bc9c683aedeac44 100644 (file)
@@ -98,7 +98,10 @@ int ode_luks_set_event_cb(ode_luks_event_cb callback, void *user_data)
        };
 
        ret = luksEventCallbackContext->subscribeSignal(Luks::NOTIFICATION, cb);
-       return toApiError(ret);
+       if (ret < 0)
+               return toApiError(ret);
+
+       return ODE_ERROR_NONE;
 }
 
 void ode_luks_unset_event_cb()