Move parseMetadata() and parsePolicyType() to StorageDeserializer 22/24322/3
authorAleksander Zdyb <a.zdyb@partner.samsung.com>
Mon, 14 Jul 2014 10:57:46 +0000 (12:57 +0200)
committerAleksander Zdyb <a.zdyb@partner.samsung.com>
Wed, 16 Jul 2014 10:38:37 +0000 (12:38 +0200)
These static methods better fit in a more general
Cynara::StorageDeserializer instead of Cynara::BucketDeserializer

Change-Id: I2bad160683ac34b68d993dc7b10e8ec7ba1b1d1c

src/service/storage/BucketDeserializer.cpp
src/service/storage/BucketDeserializer.h
src/service/storage/StorageDeserializer.cpp
src/service/storage/StorageDeserializer.h

index c40cd8d..914f766 100644 (file)
@@ -22,6 +22,7 @@
 
 #include <exceptions/BucketRecordCorruptedException.h>
 #include <storage/BucketDeserializer.h>
+#include <storage/StorageDeserializer.h>
 #include <storage/StorageSerializer.h>
 #include <types/Policy.h>
 
@@ -45,8 +46,8 @@ PolicyCollection BucketDeserializer::loadPolicies(void) {
         try {
             std::size_t beginToken = 0;
             auto policyKey = parseKey(line, beginToken);
-            auto policyType = parsePolicyType(line, beginToken);
-            auto metadata = parseMetadata(line, beginToken);
+            auto policyType = StorageDeserializer::parsePolicyType(line, beginToken);
+            auto metadata = StorageDeserializer::parseMetadata(line, beginToken);
             PolicyResult policyResult(policyType, metadata);
             policies.push_back(std::make_shared<Policy>(policyKey, policyResult));
         } catch (const BucketRecordCorruptedException &ex) {
@@ -73,28 +74,4 @@ PolicyKey BucketDeserializer::parseKey(const std::string &line, std::size_t &beg
     return PolicyKey(keyFeatures[0], keyFeatures[1], keyFeatures[2]);
 }
 
-PolicyType BucketDeserializer::parsePolicyType(const std::string &line, std::size_t &beginToken) {
-    PolicyType policyType;
-    try {
-        size_t newBegin = 0;
-        policyType = std::stoi(line.substr(beginToken), &newBegin, 16);
-        beginToken += newBegin;
-    } catch(...) {
-        throw BucketRecordCorruptedException(line);
-    }
-
-    return policyType;
-}
-
-PolicyResult::PolicyMetadata BucketDeserializer::parseMetadata(const std::string &line,
-                                                                std::size_t &beginToken) {
-    if (beginToken < line.size()) {
-        auto ret = line.substr(beginToken + 1);
-        beginToken = line.size();
-        return ret;
-    }
-
-    return std::string();
-}
-
 } /* namespace Cynara */
index 5659c45..a9b7b8c 100644 (file)
 
 namespace Cynara {
 
-class StorageDeserializer;
-
 class BucketDeserializer {
-friend StorageDeserializer;
 
 public:
     BucketDeserializer(std::istream &inStream) : m_inStream(inStream) {}
@@ -42,9 +39,6 @@ public:
 
 protected:
     static PolicyKey parseKey(const std::string &line, std::size_t &beginToken);
-    static PolicyType parsePolicyType(const std::string &line, std::size_t &beginToken);
-    static PolicyResult::PolicyMetadata parseMetadata(const std::string &line,
-                                                      std::size_t &beginToken);
 
 private:
     std::istream &m_inStream;
index f1a433b..5f1b97b 100644 (file)
@@ -45,10 +45,10 @@ void StorageDeserializer::initBuckets(InMemoryStorageBackend::Buckets &buckets)
         if (line.empty())
             break;
 
-        size_t beginToken = 0;
-        auto bucketId = StorageDeserializer::parseBucketId(line, beginToken);
-        auto policyType = BucketDeserializer::parsePolicyType(line, beginToken);
-        auto metadata = BucketDeserializer::parseMetadata(line, beginToken);
+        std::size_t beginToken = 0;
+        auto bucketId = parseBucketId(line, beginToken);
+        auto policyType = parsePolicyType(line, beginToken);
+        auto metadata = parseMetadata(line, beginToken);
 
         buckets[bucketId] = PolicyBucket(bucketId, PolicyResult(policyType, metadata));
     }
@@ -81,4 +81,28 @@ PolicyBucketId StorageDeserializer::parseBucketId(const std::string &line,
     throw BucketRecordCorruptedException(line);
 }
 
+PolicyType StorageDeserializer::parsePolicyType(const std::string &line, std::size_t &beginToken) {
+    PolicyType policyType;
+    try {
+        std::size_t newBegin = 0;
+        policyType = std::stoi(line.substr(beginToken), &newBegin, 16);
+        beginToken += newBegin;
+    } catch(...) {
+        throw BucketRecordCorruptedException(line);
+    }
+
+    return policyType;
+}
+
+PolicyResult::PolicyMetadata StorageDeserializer::parseMetadata(const std::string &line,
+                                                                std::size_t &beginToken) {
+    if (beginToken < line.size()) {
+        auto ret = line.substr(beginToken + 1);
+        beginToken = line.size();
+        return ret;
+    }
+
+    return std::string();
+}
+
 } /* namespace Cynara */
index 6ef5c4e..2fd0341 100644 (file)
@@ -38,8 +38,10 @@ public:
     void initBuckets(InMemoryStorageBackend::Buckets &buckets);
     void loadBuckets(InMemoryStorageBackend::Buckets &buckets);
 
-protected:
     static PolicyBucketId parseBucketId(const std::string &line, std::size_t &beginToken);
+    static PolicyType parsePolicyType(const std::string &line, std::size_t &beginToken);
+    static PolicyResult::PolicyMetadata parseMetadata(const std::string &line,
+                                                      std::size_t &beginToken);
 
 private:
     std::istream &m_inStream;