From cf05c2b5c92b9a79635aa2277a9d55449e14fab6 Mon Sep 17 00:00:00 2001 From: Yuta Doi Date: Fri, 29 Jun 2018 19:46:55 +0900 Subject: 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 --- src/json_helper.cpp | 70 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) (limited to 'src/json_helper.cpp') 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 @@ -108,3 +109,72 @@ json_object *to_json(std::vector 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 -- cgit 1.2.3-korg