diff Core/JobsEngine/IJobUnserializer.cpp @ 2655:c196d76cb8fa jobs

serialization
author Sebastien Jodogne <s.jodogne@gmail.com>
date Tue, 05 Jun 2018 17:57:49 +0200
parents a3f0f61a14ca
children
line wrap: on
line diff
--- a/Core/JobsEngine/IJobUnserializer.cpp	Tue Jun 05 17:09:18 2018 +0200
+++ b/Core/JobsEngine/IJobUnserializer.cpp	Tue Jun 05 17:57:49 2018 +0200
@@ -38,43 +38,43 @@
 
 namespace Orthanc
 {
-  std::string IJobUnserializer::GetString(const Json::Value& value,
-                                          const std::string& name)
+  std::string IJobUnserializer::ReadString(const Json::Value& value,
+                                           const std::string& field)
   {
     if (value.type() != Json::objectValue ||
-        !value.isMember(name.c_str()) ||
-        value[name.c_str()].type() != Json::stringValue)
+        !value.isMember(field.c_str()) ||
+        value[field.c_str()].type() != Json::stringValue)
     {
       throw OrthancException(ErrorCode_BadFileFormat);
     }
     else
     {
-      return value[name.c_str()].asString();
+      return value[field.c_str()].asString();
     }
   }
 
 
-  int IJobUnserializer::GetInteger(const Json::Value& value,
-                                   const std::string& name)
+  int IJobUnserializer::ReadInteger(const Json::Value& value,
+                                    const std::string& field)
   {
     if (value.type() != Json::objectValue ||
-        !value.isMember(name.c_str()) ||
-        (value[name.c_str()].type() != Json::intValue &&
-         value[name.c_str()].type() != Json::uintValue))
+        !value.isMember(field.c_str()) ||
+        (value[field.c_str()].type() != Json::intValue &&
+         value[field.c_str()].type() != Json::uintValue))
     {
       throw OrthancException(ErrorCode_BadFileFormat);
     }
     else
     {
-      return value[name.c_str()].asInt();
+      return value[field.c_str()].asInt();
     }    
   }
 
 
-  unsigned int IJobUnserializer::GetUnsignedInteger(const Json::Value& value,
-                                                    const std::string& name)
+  unsigned int IJobUnserializer::ReadUnsignedInteger(const Json::Value& value,
+                                                     const std::string& field)
   {
-    int tmp = GetInteger(value, name);
+    int tmp = ReadInteger(value, field);
 
     if (tmp < 0)
     {
@@ -87,29 +87,29 @@
   }
 
 
-  bool IJobUnserializer::GetBoolean(const Json::Value& value,
-                                    const std::string& name)
+  bool IJobUnserializer::ReadBoolean(const Json::Value& value,
+                                     const std::string& field)
   {
     if (value.type() != Json::objectValue ||
-        !value.isMember(name.c_str()) ||
-        value[name.c_str()].type() != Json::booleanValue)
+        !value.isMember(field.c_str()) ||
+        value[field.c_str()].type() != Json::booleanValue)
     {
       throw OrthancException(ErrorCode_BadFileFormat);
     }
     else
     {
-      return value[name.c_str()].asBool();
+      return value[field.c_str()].asBool();
     }   
   }
 
   
-  void IJobUnserializer::GetArrayOfStrings(std::vector<std::string>& target,
-                                           const Json::Value& value,
-                                           const std::string& name)
+  void IJobUnserializer::ReadArrayOfStrings(std::vector<std::string>& target,
+                                            const Json::Value& value,
+                                            const std::string& field)
   {
     if (value.type() != Json::objectValue ||
-        !value.isMember(name.c_str()) ||
-        value[name.c_str()].type() != Json::arrayValue)
+        !value.isMember(field.c_str()) ||
+        value[field.c_str()].type() != Json::arrayValue)
     {
       throw OrthancException(ErrorCode_BadFileFormat);
     }
@@ -117,7 +117,7 @@
     target.clear();
     target.resize(value.size());
 
-    const Json::Value arr = value[name.c_str()];
+    const Json::Value arr = value[field.c_str()];
     
     for (Json::Value::ArrayIndex i = 0; i < arr.size(); i++)
     {
@@ -133,12 +133,12 @@
   }
 
 
-  void IJobUnserializer::GetListOfStrings(std::list<std::string>& target,
-                                          const Json::Value& value,
-                                          const std::string& name)
+  void IJobUnserializer::ReadListOfStrings(std::list<std::string>& target,
+                                           const Json::Value& value,
+                                           const std::string& field)
   {
     std::vector<std::string> tmp;
-    GetArrayOfStrings(tmp, value, name);
+    ReadArrayOfStrings(tmp, value, field);
 
     target.clear();
     for (size_t i = 0; i < tmp.size(); i++)
@@ -148,12 +148,12 @@
   }
   
 
-  void IJobUnserializer::GetSetOfStrings(std::set<std::string>& target,
-                                         const Json::Value& value,
-                                         const std::string& name)
+  void IJobUnserializer::ReadSetOfStrings(std::set<std::string>& target,
+                                          const Json::Value& value,
+                                          const std::string& field)
   {
     std::vector<std::string> tmp;
-    GetArrayOfStrings(tmp, value, name);
+    ReadArrayOfStrings(tmp, value, field);
 
     target.clear();
     for (size_t i = 0; i < tmp.size(); i++)
@@ -161,4 +161,26 @@
       target.insert(tmp[i]);
     }
   }
+
+
+  void IJobUnserializer::WriteArrayOfStrings(Json::Value& target,
+                                             const std::vector<std::string>& values,
+                                             const std::string& field)
+  {
+    if (target.type() != Json::objectValue ||
+        target.isMember(field.c_str()))
+    {
+      throw OrthancException(ErrorCode_BadFileFormat);
+    }
+
+    Json::Value tmp;
+
+    tmp = Json::arrayValue;
+    for (size_t i = 0; i < values.size(); i++)
+    {
+      tmp.append(values[i]);
+    }
+
+    target[field] = tmp;
+  }
 }