diff options
author | Yuta Doi <yuta-d@witz-inc.co.jp> | 2018-06-29 19:46:55 +0900 |
---|---|---|
committer | Yuta Doi <yuta-d@witz-inc.co.jp> | 2018-07-09 10:04:38 +0900 |
commit | cf05c2b5c92b9a79635aa2277a9d55449e14fab6 (patch) | |
tree | 6887035dc77dfe14362914f6bd116601006c39cd /src/json_helper.cpp | |
parent | 6373ce04e2d6c6ae77246bcf7560447b3daaed3d (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.cpp | 70 |
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 |