Fix searching plugin in CapacityCache::update() 12/32412/5
authorAdam Malinowski <a.malinowsk2@partner.samsung.com>
Wed, 17 Dec 2014 18:34:38 +0000 (19:34 +0100)
committerLukasz Wojciechowski <l.wojciechow@partner.samsung.com>
Mon, 29 Dec 2014 08:22:10 +0000 (00:22 -0800)
Also put procedure finding plugin into method as it repeats twice.

Change-Id: Icd77e45f77637a7e52871aa8d2b2c9d8d4af925d

src/client-common/cache/CapacityCache.cpp
src/client-common/cache/CapacityCache.h

index 25ae6ad..0a9a207 100644 (file)
@@ -47,18 +47,11 @@ int CapacityCache::get(const ClientSession &session, const PolicyKey &key) {
         auto &cachedValue = resultIt->second;
         auto &policyResult = std::get<0>(cachedValue);
 
-        ClientPluginInterfacePtr plugin;
-        auto pluginIt = m_plugins.find(policyResult.policyType());
-        if (pluginIt != m_plugins.end()) {
-            plugin = pluginIt->second;
-        } else {
-            plugin = std::dynamic_pointer_cast<ClientPluginInterface>(
-                              m_pluginManager.getPlugin(policyResult.policyType()));
-            if (!plugin) {
-                LOGE("No plugin registered for given PolicyType : %" PRIu16,
-                        policyResult.policyType());
-                return CYNARA_API_ACCESS_DENIED;
-            }
+        ClientPluginInterfacePtr plugin = findPlugin(policyResult.policyType());
+        if (!plugin) {
+            LOGE("No plugin registered for given policyType: [%" PRIu16 "]",
+                 policyResult.policyType());
+            return CYNARA_API_ACCESS_DENIED;
         }
 
         //Is it still usable?
@@ -117,15 +110,11 @@ int CapacityCache::update(const ClientSession &session,
                           const PolicyKey &key,
                           const PolicyResult &result) {
 
-    auto pluginIt = m_plugins.find(result.policyType());
-
-    //No registered plugin for returned type of policy
-    if (pluginIt == m_plugins.end()) {
-        LOGE("No registered plugin for given PolicyType: %" PRIu16,
-                result.policyType());
+    ClientPluginInterfacePtr plugin = findPlugin(result.policyType());
+    if (!plugin) {
+        LOGE("No plugin registered for given policyType: [%" PRIu16 "]", result.policyType());
         return CYNARA_API_ACCESS_DENIED;
     }
-    auto plugin = pluginIt->second;
 
     PolicyResult storedResult = result;
 
@@ -160,4 +149,18 @@ int CapacityCache::update(const ClientSession &session,
     return plugin->toResult(session, storedResult);
 }
 
+ClientPluginInterfacePtr CapacityCache::findPlugin(PolicyType policyType) {
+    ClientPluginInterfacePtr plugin;
+
+    auto pluginIt = m_plugins.find(policyType);
+    if (pluginIt != m_plugins.end()) {
+        plugin = pluginIt->second;
+    } else {
+        plugin = std::dynamic_pointer_cast<ClientPluginInterface>(
+                                                m_pluginManager.getPlugin(policyType));
+    }
+
+    return plugin;
+}
+
 } // namespace Cynara
index 24e1092..59ff772 100644 (file)
@@ -54,7 +54,7 @@ private:
 
     static std::string keyToString(const PolicyKey &key);
     void evict(void);
-
+    ClientPluginInterfacePtr findPlugin(PolicyType policyType);
 
     std::size_t m_capacity;