X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Fhs-helper.cpp;h=33ab7214a2d062528d4876c424c1885f1eba9ec9;hb=c393aaa4ae541f1f925981a6f8ae20d46626e8b6;hp=159668e9e35915f2a10a41d3914a90683fea1dfd;hpb=46ac770dd55f51bc5d611ba3e5dd883e5f51edfa;p=apps%2Fagl-service-homescreen.git diff --git a/src/hs-helper.cpp b/src/hs-helper.cpp index 159668e..33ab721 100644 --- a/src/hs-helper.cpp +++ b/src/hs-helper.cpp @@ -283,12 +283,11 @@ std::string get_application_id(const afb_req_t request) * * #### Return * 0 : read success - * 1 : read fail + * -1 : read fail * */ int readJsonFile(const char* file, struct json_object **obj) { - *obj = nullptr; int ret = -1; FILE *fp = fopen(file, "rb"); if(fp == nullptr) { @@ -296,6 +295,7 @@ int readJsonFile(const char* file, struct json_object **obj) return ret; } + *obj = nullptr; const int buf_size = 128; char buf[buf_size]; struct json_tokener *tokener = json_tokener_new(); @@ -321,3 +321,40 @@ int readJsonFile(const char* file, struct json_object **obj) json_tokener_free(tokener); return ret; } + +/** + * write to json file + * + * #### Parameters + * - file : output file name + * - obj : json_object + * + * #### Return + * 0 : read success + * -1 : read fail + * + */ +int writeJsonFile(const char* file, struct json_object *obj) +{ + int ret = -1; + FILE *fp = fopen(file, "wb"); + if(fp == nullptr) { + AFB_ERROR("open %s failed", file); + return ret; + } + + const char *str = json_object_to_json_string(obj); + size_t len = sizeof(str); + size_t cnt = fwrite(str, len, 1, fp); + if(cnt == len) { + ret = 0; + fflush(fp); + fsync(fileno(fp)); + } + else { + AFB_WARNING("write to %s failed.", file); + } + + fclose(fp); + return ret; +} \ No newline at end of file