aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/hs-helper.cpp41
1 files changed, 39 insertions, 2 deletions
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