aboutsummaryrefslogtreecommitdiffstats
path: root/src/json_helper.cpp
diff options
context:
space:
mode:
authorYuta Doi <yuta-d@witz-inc.co.jp>2018-06-29 19:46:55 +0900
committerYuta Doi <yuta-d@witz-inc.co.jp>2018-07-09 10:04:38 +0900
commitcf05c2b5c92b9a79635aa2277a9d55449e14fab6 (patch)
tree6887035dc77dfe14362914f6bd116601006c39cd /src/json_helper.cpp
parent6373ce04e2d6c6ae77246bcf7560447b3daaed3d (diff)
Convert the roles from old one to new
Update the role name (drawing_name) and WindowManager converts the role from old one to new. We plan to delete the old roles by GG. Therefore the applications can use old olds until GG, After GG, old roles can not be used. If the applications use it, WindowManager regards the applications as the role "fallback". Therefore the applications may not be displayed in the intended layout. For the role "fallback", please refer to JIRA SPEC-1331. Bug-AGL: SPEC-1566 Change-Id: I6ca703183e3cab72ac460094ef14dc3675a98cb6 Signed-off-by: Yuta Doi <yuta-d@witz-inc.co.jp>
Diffstat (limited to 'src/json_helper.cpp')
-rw-r--r--src/json_helper.cpp70
1 files changed, 70 insertions, 0 deletions
diff --git a/src/json_helper.cpp b/src/json_helper.cpp
index 2e49778..43440db 100644
--- a/src/json_helper.cpp
+++ b/src/json_helper.cpp
@@ -15,6 +15,7 @@
*/
#include "json_helper.hpp"
+#include "hmi-debug.h"
#include <json.h>
@@ -108,3 +109,72 @@ json_object *to_json(std::vector<uint32_t> const &v)
}
return a;
}
+
+namespace jh {
+
+const char* getStringFromJson(json_object* obj, const char* key)
+{
+ json_object* tmp;
+ if (!json_object_object_get_ex(obj, key, &tmp))
+ {
+ HMI_DEBUG("wm:jh", "Not found key \"%s\"", key);
+ return nullptr;
+ }
+
+ return json_object_get_string(tmp);
+}
+
+int inputJsonFilie(const char* file, json_object** obj)
+{
+ const int input_size = 128;
+ int ret = -1;
+
+ HMI_DEBUG("wm:jh", "Input file: %s", file);
+
+ // Open json file
+ FILE *fp = fopen(file, "rb");
+ if (nullptr == fp)
+ {
+ HMI_ERROR("wm:jh", "Could not open file");
+ return ret;
+ }
+
+ // Parse file data
+ struct json_tokener *tokener = json_tokener_new();
+ enum json_tokener_error json_error;
+ char buffer[input_size];
+ int block_cnt = 1;
+ while (1)
+ {
+ size_t len = fread(buffer, sizeof(char), input_size, fp);
+ *obj = json_tokener_parse_ex(tokener, buffer, len);
+ if (nullptr != *obj)
+ {
+ HMI_DEBUG("wm:jh", "File input is success");
+ ret = 0;
+ break;
+ }
+
+ json_error = json_tokener_get_error(tokener);
+ if ((json_tokener_continue != json_error)
+ || (input_size > len))
+ {
+ HMI_ERROR("wm:jh", "Failed to parse file (byte:%d err:%s)",
+ (input_size * block_cnt), json_tokener_error_desc(json_error));
+ HMI_ERROR("wm:jh", "\n%s", buffer);
+ *obj = nullptr;
+ break;
+ }
+ block_cnt++;
+ }
+
+ // Close json file
+ fclose(fp);
+
+ // Free json_tokener
+ json_tokener_free(tokener);
+
+ return ret;
+}
+
+} // namespace jh