Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mapsme/omim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/3party
diff options
context:
space:
mode:
authorIlya Zverev <zverik@textual.ru>2016-07-15 18:01:19 +0300
committerIlya Zverev <zverik@textual.ru>2016-07-19 12:53:21 +0300
commit46a5d58ba1fe3b274df149214fe1bbc7bb97b6e1 (patch)
tree3d9baa51399d40e78102e3e1c7a6add4573c0059 /3party
parent989c84e7bb93994a02ba482e83e8ec3a90ff91fa (diff)
[generator] Add region info section to mwms
Diffstat (limited to '3party')
-rw-r--r--3party/jansson/myjansson.cpp28
-rw-r--r--3party/jansson/myjansson.hpp2
2 files changed, 30 insertions, 0 deletions
diff --git a/3party/jansson/myjansson.cpp b/3party/jansson/myjansson.cpp
index f1de73f435..5481a93ceb 100644
--- a/3party/jansson/myjansson.cpp
+++ b/3party/jansson/myjansson.cpp
@@ -81,4 +81,32 @@ void FromJSONObjectOptionalField(json_t * root, string const & field, json_int_t
MYTHROW(my::Json::Exception, ("The field", field, "must contain a json number."));
result = json_integer_value(val);
}
+
+void FromJSONObjectOptionalField(json_t * root, string const & field, bool & result, bool def)
+{
+ if (!json_is_object(root))
+ MYTHROW(my::Json::Exception, ("Bad json object when parsing", field));
+ json_t * val = json_object_get(root, field.c_str());
+ if (!val)
+ {
+ result = def;
+ return;
+ }
+ if (!json_is_boolean(val))
+ MYTHROW(my::Json::Exception, ("The field", field, "must contain a boolean value."));
+ result = json_is_true(val);
+}
+
+void FromJSONObjectOptionalField(json_t * root, string const & field, json_t *& result)
+{
+ json_t * obj = json_object_get(root, field.c_str());
+ if (!obj)
+ {
+ result = nullptr;
+ return;
+ }
+ if (!json_is_object(obj))
+ MYTHROW(my::Json::Exception, ("The field", field, "must contain a json object."));
+ FromJSON(obj, result);
+}
} // namespace my
diff --git a/3party/jansson/myjansson.hpp b/3party/jansson/myjansson.hpp
index 9734a06b1f..634996c365 100644
--- a/3party/jansson/myjansson.hpp
+++ b/3party/jansson/myjansson.hpp
@@ -52,6 +52,8 @@ void FromJSONObject(json_t * root, string const & field, vector<T> & result)
void FromJSONObjectOptionalField(json_t * root, string const & field, string & result);
void FromJSONObjectOptionalField(json_t * root, string const & field, json_int_t & result);
+void FromJSONObjectOptionalField(json_t * root, string const & field, bool & result, bool def = false);
+void FromJSONObjectOptionalField(json_t * root, string const & field, json_t *& result);
template <typename T>
void FromJSONObjectOptionalField(json_t * root, string const & field, vector<T> & result)