From e783dc858cbf3370c80a46b6bfef6d14580b6764 Mon Sep 17 00:00:00 2001 From: zhangzengfei <zhangzengfei@smartai.com> Date: 星期五, 13 一月 2023 18:07:14 +0800 Subject: [PATCH] code format --- rule.cpp | 20 +- stack.cpp | 6 versionctrlapi.cpp | 34 +- dbapi.h | 28 +- main.cpp | 22 +- sdk.cpp | 10 sysset.cpp | 6 util.cpp | 239 +++++++++++++------------- util.h | 133 +++++++------- camera.cpp | 12 polygon.cpp | 11 11 files changed, 255 insertions(+), 266 deletions(-) diff --git a/camera.cpp b/camera.cpp index 771ebbb..56e85ce 100644 --- a/camera.cpp +++ b/camera.cpp @@ -54,19 +54,21 @@ #include "dbapi.h" #include "util.h" using namespace protomsg; + // 鍔爂et鍙傛暟 runType 1: 瀹炴椂 0 杞 -bool dbapi_get_cameras_by_runtype(void *handle, std::vector<protomsg::Camera> & list) { +bool dbapi_get_cameras_by_runtype(void *handle, std::vector<protomsg::Camera> &list) { const char *topic = DATA_URL_PREFIX("/camera/getCamerasByRunType"); - bool ret = bus_dbapi_get_list(handle, topic, list); + bool ret = bus_dbapi_get_list(handle, topic, list); + return ret; } // 鍔爂et鍙傛暟 runType 1: 瀹炴椂 0 杞 -bool dbapi_get_gb28181_cameras_by_runtype(void *handle, std::vector<protomsg::Camera> & list) { +bool dbapi_get_gb28181_cameras_by_runtype(void *handle, std::vector<protomsg::Camera> &list) { const char *topic = DATA_URL_PREFIX("/gb28181/camera/getCamerasByRunType"); - bool ret = bus_dbapi_get_list(handle, topic, list); + bool ret = bus_dbapi_get_list(handle, topic, list); + return ret; } - diff --git a/dbapi.h b/dbapi.h index adcdbc4..291f1bc 100644 --- a/dbapi.h +++ b/dbapi.h @@ -3,25 +3,25 @@ #include <vector> -#include "proto/x86_64/sysset.pb.h" -#include "proto/x86_64/protomsg.pb.h" #include "proto/x86_64/fileanalysis.pb.h" +#include "proto/x86_64/protomsg.pb.h" +#include "proto/x86_64/sysset.pb.h" using namespace std; -bool dbapi_get_server_info(void *handle, protomsg::LocalConfig & message); -bool dbapi_get_poll_config(void *handle, protomsg::PollConfig & message); -bool dbapi_get_stack_config(void *handle, protomsg::FileAnalysisSetting & message); -bool dbapi_get_time_rules(void *handle, std::vector<protomsg::CameraTimerule> & list); -bool dbapi_get_camera_rules(void *handle, std::vector<protomsg::CameraAndRules> & list); +bool dbapi_get_server_info(void *handle, protomsg::LocalConfig &message); +bool dbapi_get_poll_config(void *handle, protomsg::PollConfig &message); +bool dbapi_get_stack_config(void *handle, protomsg::FileAnalysisSetting &message); +bool dbapi_get_time_rules(void *handle, std::vector<protomsg::CameraTimerule> &list); +bool dbapi_get_camera_rules(void *handle, std::vector<protomsg::CameraAndRules> &list); -bool dbapi_get_cameras_by_runtype(void *handle, std::vector<protomsg::Camera> & list); -bool dbapi_get_gb28181_cameras_by_runtype(void *handle, std::vector<protomsg::Camera> & list); -bool dbapi_get_sdk_channel_set(void *handle, std::vector<protomsg::SdkChanSet> & list); -bool dbapi_get_sdks(void *handle, std::vector<protomsg::Sdk> & list); +bool dbapi_get_cameras_by_runtype(void *handle, std::vector<protomsg::Camera> &list); +bool dbapi_get_gb28181_cameras_by_runtype(void *handle, std::vector<protomsg::Camera> &list); +bool dbapi_get_sdk_channel_set(void *handle, std::vector<protomsg::SdkChanSet> &list); +bool dbapi_get_sdks(void *handle, std::vector<protomsg::Sdk> &list); -bool dbapi_get_doing_stacks(void *handle, std::vector<protomsg::FileStack> & list); -bool dbapi_get_polygons(void *handle, std::vector<protomsg::CameraPolygon> & list); -bool dbapi_get_polygon_relations(void *handle, std::vector<protomsg::CameraPolygonRelation> & list); +bool dbapi_get_doing_stacks(void *handle, std::vector<protomsg::FileStack> &list); +bool dbapi_get_polygons(void *handle, std::vector<protomsg::CameraPolygon> &list); +bool dbapi_get_polygon_relations(void *handle, std::vector<protomsg::CameraPolygonRelation> &list); bool dbapi_get_server_get_is_sys_expired(void *handle); #endif \ No newline at end of file diff --git a/main.cpp b/main.cpp index 58e57bc..5d3bf41 100644 --- a/main.cpp +++ b/main.cpp @@ -1,32 +1,29 @@ #include <stdio.h> -#include <vector> +#include <memory> #include <string> #include <thread> -#include <memory> +#include <vector> + using namespace std; #include "3rdparty/bus_client/cbhomeclient.h" #include "3rdparty/bus_client/message.h" - #include "dbapi.h" -#include "proto/x86_64/sysset.pb.h" #include "proto/x86_64/fileanalysis.pb.h" #include "proto/x86_64/protomsg.pb.h" +#include "proto/x86_64/sysset.pb.h" - -int main(int argc, char const *argv[]) -{ +int main(int argc, char const *argv[]) { // 鍒濆鍖朾us - creg* reg = make_creg_from_cproc(make_cproc("request", "requestid")); + creg *reg = make_creg_from_cproc(make_cproc("request", "requestid")); printf("make_creg_from_cproc\n"); - void* handle = bus_client_init(NULL, 0, reg); + void *handle = bus_client_init(NULL, 0, reg); creg_free(reg); printf("bus_client_init end\n"); - // 鏈嶅姟鍣ㄩ厤缃� sysset.pb.h // protomsg::LocalConfig node; @@ -52,9 +49,8 @@ printf("CameraTimerule:\n"); } - //绯荤粺鎺堟潈淇℃伅 - - printf("isExpired:%d\n", dbapi_get_server_get_is_sys_expired(handle)); + //绯荤粺鎺堟潈淇℃伅 + printf("isExpired:%d\n", dbapi_get_server_get_is_sys_expired(handle)); return 0; } diff --git a/polygon.cpp b/polygon.cpp index b6da255..1dfa7dc 100644 --- a/polygon.cpp +++ b/polygon.cpp @@ -3,17 +3,18 @@ using namespace protomsg; -bool dbapi_get_polygons(void *handle, std::vector<protomsg::CameraPolygon> & list) { +bool dbapi_get_polygons(void *handle, std::vector<protomsg::CameraPolygon> &list) { const char *topic = DATA_URL_PREFIX("/polygon/findAll"); - bool ret = bus_dbapi_get_list(handle, topic, list); + bool ret = bus_dbapi_get_list(handle, topic, list); + return ret; } -bool dbapi_get_polygon_relations(void *handle, std::vector<protomsg::CameraPolygonRelation> & list) { +bool dbapi_get_polygon_relations(void *handle, std::vector<protomsg::CameraPolygonRelation> &list) { const char *topic = DATA_URL_PREFIX("/polygon/relation/findAll"); - bool ret = bus_dbapi_get_list(handle, topic, list); + bool ret = bus_dbapi_get_list(handle, topic, list); + return ret; } - diff --git a/rule.cpp b/rule.cpp index 2c5e94a..23abaff 100644 --- a/rule.cpp +++ b/rule.cpp @@ -1,21 +1,21 @@ +#include "3rdparty/yyjson/yyjson.h" #include "dbapi.h" #include "util.h" -#include "3rdparty/yyjson/yyjson.h" using namespace protomsg; -bool dbapi_get_time_rules(void *handle, std::vector<protomsg::CameraTimerule> & list){ - const char *topic = DATA_URL_PREFIX("/cameraTimerule/findAll"); +bool dbapi_get_time_rules(void *handle, std::vector<protomsg::CameraTimerule> &list) { + const char *topic = DATA_URL_PREFIX("/cameraTimerule/findAll"); - bool ret = bus_dbapi_get_list(handle, topic, list); - return ret; + bool ret = bus_dbapi_get_list(handle, topic, list); + + return ret; } - -bool dbapi_get_camera_rules(void *handle, std::vector<protomsg::CameraAndRules> & list) { +bool dbapi_get_camera_rules(void *handle, std::vector<protomsg::CameraAndRules> &list) { const char *topic = DATA_URL_PREFIX("/camera/rule/findAll"); - bool ret = bus_dbapi_get_list(handle, topic, list); - return true;; -} + bool ret = bus_dbapi_get_list(handle, topic, list); + return true; +} diff --git a/sdk.cpp b/sdk.cpp index 8a78418..dc4cda9 100644 --- a/sdk.cpp +++ b/sdk.cpp @@ -3,16 +3,18 @@ using namespace protomsg; -bool dbapi_get_sdk_channel_set(void *handle, std::vector<protomsg::SdkChanSet> & list) { +bool dbapi_get_sdk_channel_set(void *handle, std::vector<protomsg::SdkChanSet> &list) { const char *topic = DATA_URL_PREFIX("/sdk/getAllSdkChanSet"); - bool ret = bus_dbapi_get_list(handle, topic, list); + bool ret = bus_dbapi_get_list(handle, topic, list); + return ret; } -bool dbapi_get_sdks(void *handle, std::vector<protomsg::Sdk> & list) { +bool dbapi_get_sdks(void *handle, std::vector<protomsg::Sdk> &list) { const char *topic = DATA_URL_PREFIX("/sdk/findAllSdk"); - bool ret = bus_dbapi_get_list(handle, topic, list); + bool ret = bus_dbapi_get_list(handle, topic, list); + return ret; } diff --git a/stack.cpp b/stack.cpp index 6484c61..4016e69 100644 --- a/stack.cpp +++ b/stack.cpp @@ -3,10 +3,10 @@ using namespace protomsg; -bool dbapi_get_doing_stacks(void *handle, std::vector<protomsg::FileStack> & list) { +bool dbapi_get_doing_stacks(void *handle, std::vector<protomsg::FileStack> &list) { const char *topic = DATA_URL_PREFIX("/fileStack/findAllDoingStacks"); - bool ret = bus_dbapi_get_list(handle, topic, list); + bool ret = bus_dbapi_get_list(handle, topic, list); + return ret; } - diff --git a/sysset.cpp b/sysset.cpp index 701827e..32a3db7 100644 --- a/sysset.cpp +++ b/sysset.cpp @@ -3,19 +3,19 @@ using namespace protomsg; -bool dbapi_get_server_info(void *handle, protomsg::LocalConfig & message) { +bool dbapi_get_server_info(void *handle, protomsg::LocalConfig &message) { const char *topic = DATA_URL_PREFIX("/sysset/getServerInfo"); return bus_dbapi_get(handle, topic, message); } -bool dbapi_get_poll_config(void *handle, protomsg::PollConfig & message) { +bool dbapi_get_poll_config(void *handle, protomsg::PollConfig &message) { const char *topic = DATA_URL_PREFIX("/pollConfig/getPollConfig"); return bus_dbapi_get(handle, topic, message); } -bool dbapi_get_stack_config(void *handle, protomsg::FileAnalysisSetting & message) { +bool dbapi_get_stack_config(void *handle, protomsg::FileAnalysisSetting &message) { const char *topic = DATA_URL_PREFIX("/fileSetting/show"); return bus_dbapi_get(handle, topic, message); diff --git a/util.cpp b/util.cpp index 744ea88..d823797 100644 --- a/util.cpp +++ b/util.cpp @@ -5,15 +5,15 @@ #include "google/protobuf/util/type_resolver.h" #include "google/protobuf/util/type_resolver_util.h" -#include "google/protobuf/message.h" +#include "google/protobuf/compiler/importer.h" #include "google/protobuf/descriptor.h" #include "google/protobuf/descriptor.pb.h" #include "google/protobuf/dynamic_message.h" -#include "google/protobuf/compiler/importer.h" +#include "google/protobuf/message.h" -#include "3rdparty/yyjson/yyjson.h" #include "3rdparty/bus_client/cbhomeclient.h" #include "3rdparty/bus_client/message.h" +#include "3rdparty/yyjson/yyjson.h" #include "proto/x86_64/sysset.pb.h" #include <vector> @@ -23,17 +23,19 @@ const char *CONTENT_TYPE_JSON = "application/json"; -bool json_to_proto(const std::string &json, google::protobuf::Message& message) { +bool json_to_proto(const std::string &json, google::protobuf::Message &message) { google::protobuf::util::JsonParseOptions options; options.ignore_unknown_fields = true; - return JsonStringToMessage(json, &message,options).ok(); + + return JsonStringToMessage(json, &message, options).ok(); } -bool proto_to_json(const google::protobuf::Message& message, std::string& json) { +bool proto_to_json(const google::protobuf::Message &message, std::string &json) { google::protobuf::util::JsonPrintOptions options; options.add_whitespace = true; options.always_print_primitive_fields = true; options.preserve_proto_field_names = true; + return MessageToJsonString(message, &json, options).ok(); } @@ -52,50 +54,50 @@ return json; } -extern "C" int bus_dbapi_get_json_data(const char * json, char ** pptr_data, yyjson_type *ptr_type) -{ +extern "C" int bus_dbapi_get_json_data(const char *json, char **pptr_data, yyjson_type *ptr_type) { /*{ - "success": true, - "msg": "", - "data": { - "alarm_ip": "192.168.20.189", - "alarm_port": 9200, - } - }*/ + "success": true, + "msg": "", + "data": { + "alarm_ip": "192.168.20.189", + "alarm_port": 9200, + } + }*/ - /*{ - "code": 200, - "data": [ - { - "id": "295F36D6-7489-30AC-3263-335B4660AA79", - "name": "鍏ㄥぉ", - "time_rule": "[{\"day\":1,\"time_range\":[{\"start\":\"05:31\",\"end\":\"21:07\"}]},{\"day\":2,\"time_range\":[{\"start\":\"01:42\",\"end\":\"23:59\"}]},{\"day\":3,\"time_range\":[{\"start\":\"00:00\",\"end\":\"23:59\"}]},{\"day\":4,\"time_range\":[{\"start\":\"00:00\",\"end\":\"23:59\"}]},{\"day\":5,\"time_range\":[{\"start\":\"00:00\",\"end\":\"23:59\"}]},{\"day\":6,\"time_range\":[{\"start\":\"00:00\",\"end\":\"23:59\"}]},{\"day\":7,\"time_range\":[{\"start\":\"00:00\",\"end\":\"23:59\"}]}]" - }, - { - "id": "21FA488C-2858-F366-4587-CE0661BFAD60", - "name": "SAAS", - "time_rule": "[{\"day\":1,\"time_range\":[{\"start\":\"00:00\",\"end\":\"17:04\"}]},{\"day\":2,\"time_range\":[{\"start\":\"00:00\",\"end\":\"17:25\"}]},{\"day\":3,\"time_range\":[{\"start\":\"00:00\",\"end\":\"17:22\"}]},{\"day\":4,\"time_range\":[{\"start\":\"00:00\",\"end\":\"15:33\"}]},{\"day\":5,\"time_range\":[{\"start\":\"00:00\",\"end\":\"17:40\"}]},{\"day\":6,\"time_range\":[{\"start\":\"00:00\",\"end\":\"18:04\"}]},{\"day\":7,\"time_range\":[{\"start\":\"00:00\",\"end\":\"13:51\"}]}]" - }, - { - "id": "37B82C8F-3BDB-A247-3683-F045190D2991", - "name": "116", - "time_rule": "[{\"day\":1,\"time_range\":[{\"start\":\"03:28\",\"end\":\"23:59\"}]},{\"day\":2,\"time_range\":[{\"start\":\"04:04\",\"end\":\"23:59\"}]},{\"day\":3,\"time_range\":[{\"start\":\"04:40\",\"end\":\"23:59\"}]},{\"day\":4,\"time_range\":[{\"start\":\"04:46\",\"end\":\"23:59\"}]},{\"day\":5,\"time_range\":[{\"start\":\"04:58\",\"end\":\"23:59\"}]},{\"day\":6,\"time_range\":[{\"start\":\"06:16\",\"end\":\"23:59\"}]},{\"day\":7,\"time_range\":[{\"start\":\"05:52\",\"end\":\"23:59\"}]}]" - } - ], - "msg": "", - "success": true + /*{ +"code": 200, +"data": [ + { + "id": "295F36D6-7489-30AC-3263-335B4660AA79", + "name": "鍏ㄥぉ", + "time_rule": +"[{\"day\":1,\"time_range\":[{\"start\":\"05:31\",\"end\":\"21:07\"}]},{\"day\":2,\"time_range\":[{\"start\":\"01:42\",\"end\":\"23:59\"}]},{\"day\":3,\"time_range\":[{\"start\":\"00:00\",\"end\":\"23:59\"}]},{\"day\":4,\"time_range\":[{\"start\":\"00:00\",\"end\":\"23:59\"}]},{\"day\":5,\"time_range\":[{\"start\":\"00:00\",\"end\":\"23:59\"}]},{\"day\":6,\"time_range\":[{\"start\":\"00:00\",\"end\":\"23:59\"}]},{\"day\":7,\"time_range\":[{\"start\":\"00:00\",\"end\":\"23:59\"}]}]" + }, + { + "id": "21FA488C-2858-F366-4587-CE0661BFAD60", + "name": "SAAS", + "time_rule": +"[{\"day\":1,\"time_range\":[{\"start\":\"00:00\",\"end\":\"17:04\"}]},{\"day\":2,\"time_range\":[{\"start\":\"00:00\",\"end\":\"17:25\"}]},{\"day\":3,\"time_range\":[{\"start\":\"00:00\",\"end\":\"17:22\"}]},{\"day\":4,\"time_range\":[{\"start\":\"00:00\",\"end\":\"15:33\"}]},{\"day\":5,\"time_range\":[{\"start\":\"00:00\",\"end\":\"17:40\"}]},{\"day\":6,\"time_range\":[{\"start\":\"00:00\",\"end\":\"18:04\"}]},{\"day\":7,\"time_range\":[{\"start\":\"00:00\",\"end\":\"13:51\"}]}]" + }, + { + "id": "37B82C8F-3BDB-A247-3683-F045190D2991", + "name": "116", + "time_rule": +"[{\"day\":1,\"time_range\":[{\"start\":\"03:28\",\"end\":\"23:59\"}]},{\"day\":2,\"time_range\":[{\"start\":\"04:04\",\"end\":\"23:59\"}]},{\"day\":3,\"time_range\":[{\"start\":\"04:40\",\"end\":\"23:59\"}]},{\"day\":4,\"time_range\":[{\"start\":\"04:46\",\"end\":\"23:59\"}]},{\"day\":5,\"time_range\":[{\"start\":\"04:58\",\"end\":\"23:59\"}]},{\"day\":6,\"time_range\":[{\"start\":\"06:16\",\"end\":\"23:59\"}]},{\"day\":7,\"time_range\":[{\"start\":\"05:52\",\"end\":\"23:59\"}]}]" + } +], +"msg": "", +"success": true }*/ int ret = -1; size_t data_len = 0; - const char * ptr_value = NULL; - const char * success_name = "success"; - const char * msg_name = "msg"; + const char *ptr_value = NULL; + const char *success_name = "success"; + const char *msg_name = "msg"; - if(NULL == *pptr_data) - { + if (NULL == *pptr_data) { return -1; } - // Read JSON and get root yyjson_doc *doc = yyjson_read(json, strlen(json), 0); @@ -104,88 +106,82 @@ // Get root["success"] yyjson_val *success = yyjson_obj_get(root, success_name); - int success_val = yyjson_get_bool(success); + int success_val = yyjson_get_bool(success); printf("success: %d\n", success_val); - if(!success_val) - { + if (!success_val) { yyjson_doc_free(doc); return -1; } // Get root["msg"] - //yyjson_val *msg = yyjson_obj_get(root, "msg"); - yyjson_val *msg = yyjson_obj_get(root, "msg"); - printf("msg: %s\n", yyjson_get_str(msg)); + // yyjson_val *msg = yyjson_obj_get(root, "msg"); + yyjson_val *msg = yyjson_obj_get(root, "msg"); + printf("msg: %s\n", yyjson_get_str(msg)); // Get root["data"] - //yyjson_val *msg = yyjson_obj_get(root, "data"); - yyjson_val *data = yyjson_obj_get(root, "data"); + // yyjson_val *msg = yyjson_obj_get(root, "data"); + yyjson_val *data = yyjson_obj_get(root, "data"); *ptr_type = yyjson_get_type(data); - ptr_value = yyjson_val_write(data, YYJSON_WRITE_NOFLAG, &data_len); - printf("data: %s\n", ptr_value); - printf("len: %lu\n", data_len); + ptr_value = yyjson_val_write(data, YYJSON_WRITE_NOFLAG, &data_len); + printf("data: %s\n", ptr_value); + printf("len: %lu\n", data_len); memcpy(*pptr_data, ptr_value, data_len); ret = 0; // Free the doc yyjson_doc_free(doc); - + // All functions accept NULL input, and return NULL on error. return ret; } -bool bus_dbapi_get_topic_data(void *handle, const char* topic, crepmsg **pptr_repmsg, size_t len) -{ - const auto topicl = strlen(topic); - auto reqData = make_get_request(topic); - auto reqmsg = make_req_msg(topic, topicl, reqData, strlen(reqData)); - - if (bus_client_request(handle, reqmsg, pptr_repmsg)) { - printf("======>> bus_client_reqest [%s] get [%s]\n", topic, (*pptr_repmsg)->data); - } else { - free(reqData); - return false; - } +bool bus_dbapi_get_topic_data(void *handle, const char *topic, crepmsg **pptr_repmsg, size_t len) { + const auto topicl = strlen(topic); + auto reqData = make_get_request(topic); + auto reqmsg = make_req_msg(topic, topicl, reqData, strlen(reqData)); - len = strlen((*pptr_repmsg)->data) + 1; - - free(reqData); - return true; -} - - -bool bus_dbapi_get(void *handle, const char* topic, google::protobuf::Message& message) { - yyjson_type type = YYJSON_TYPE_OBJ; - crepmsg *repmsg = NULL; - size_t len = 0; - bool bRet = false; - - bus_dbapi_get_topic_data(handle, topic, &repmsg, len); - - int msglen = strlen(repmsg->data); - char* msgdata = (char *)malloc(msglen); - memset(msgdata, 0 , msglen); - - if(0 == bus_dbapi_get_json_data((const char *)repmsg->data, &msgdata, &type)) - { - printf("======>> protomsg: %s\n", msgdata); + if (bus_client_request(handle, reqmsg, pptr_repmsg)) { + printf("======>> bus_client_reqest [%s] get [%s]\n", topic, (*pptr_repmsg)->data); + } else { + free(reqData); + return false; } - std::string jsonString = msgdata; - bRet = json_to_proto(jsonString, message); - if (bRet) - { - printf("======>> json_to_proto done\n"); - } - else - { - printf("======>> json_to_proto fail\n"); - } + len = strlen((*pptr_repmsg)->data) + 1; + + free(reqData); + return true; +} + +bool bus_dbapi_get(void *handle, const char *topic, google::protobuf::Message &message) { + yyjson_type type = YYJSON_TYPE_OBJ; + crepmsg *repmsg = NULL; + size_t len = 0; + bool bRet = false; + + bus_dbapi_get_topic_data(handle, topic, &repmsg, len); + + int msglen = strlen(repmsg->data); + char *msgdata = (char *)malloc(msglen); + memset(msgdata, 0, msglen); + + if (0 == + bus_dbapi_get_json_data((const char *)repmsg->data, &msgdata, &type)) { + printf("======>> protomsg: %s\n", msgdata); + } + + std::string jsonString = msgdata; + bRet = json_to_proto(jsonString, message); + if (bRet) { + printf("======>> json_to_proto done\n"); + } else { + printf("======>> json_to_proto fail\n"); + } free(msgdata); - free_reply_msg(repmsg); + free_reply_msg(repmsg); return bRet; } @@ -193,44 +189,43 @@ /***************************************************************************** 鍑� 鏁� 鍚� : bus_dbapi_get_str 鍔熻兘鎻忚堪 : 鑾峰彇璁㈤槄涓婚娑堟伅瀛楃涓诧紝杩斿洖鐨勫唴瀛樿皟鐢ㄨ�呴渶瑕佹墜宸ヨ皟鐢╢ree鍑芥暟閲婃斁 - 杈撳叆鍙傛暟 : void *handle - const char* topic - char **pptr_str + 杈撳叆鍙傛暟 : void *handle + const char* topic + char **pptr_str 杈撳嚭鍙傛暟 : 鏃� - 杩� 鍥� 鍊� : - 璋冪敤鍑芥暟 : - 琚皟鍑芥暟 : - + 杩� 鍥� 鍊� : + 璋冪敤鍑芥暟 : + 琚皟鍑芥暟 : + 淇敼鍘嗗彶 : 1.鏃� 鏈� : 2023骞�1鏈�13鏃� 浣� 鑰� : cheliequan 淇敼鍐呭 : 鏂扮敓鎴愬嚱鏁� *****************************************************************************/ -bool bus_dbapi_get_str(void *handle, const char* topic, char **pptr_str) { - yyjson_type type = YYJSON_TYPE_OBJ; - crepmsg *repmsg = NULL; +bool bus_dbapi_get_str(void *handle, const char *topic, char **pptr_str) { + yyjson_type type = YYJSON_TYPE_OBJ; + crepmsg *repmsg = NULL; size_t len = 0; - int iRet = 0; - bool bRet = false; - - bus_dbapi_get_topic_data(handle, topic, &repmsg, len); + int iRet = 0; + bool bRet = false; + + bus_dbapi_get_topic_data(handle, topic, &repmsg, len); int msglen = strlen(repmsg->data); - char* msgdata = (char *)malloc(msglen); - memset(msgdata, 0 , msglen); + char *msgdata = (char *)malloc(msglen); + memset(msgdata, 0, msglen); iRet = bus_dbapi_get_json_data((const char *)repmsg->data, &msgdata, &type); - if(0 == iRet) - { - printf("======>> protomsg: %s\n", msgdata); - bRet = true; - } + if (0 == iRet) { + printf("======>> protomsg: %s\n", msgdata); + bRet = true; + } - *pptr_str = msgdata; + *pptr_str = msgdata; free(msgdata); - free_reply_msg(repmsg); + free_reply_msg(repmsg); return bRet; } diff --git a/util.h b/util.h index b5c19ba..1533e90 100644 --- a/util.h +++ b/util.h @@ -8,15 +8,15 @@ #include "google/protobuf/util/type_resolver.h" #include "google/protobuf/util/type_resolver_util.h" -#include "google/protobuf/message.h" +#include "google/protobuf/compiler/importer.h" #include "google/protobuf/descriptor.h" #include "google/protobuf/descriptor.pb.h" #include "google/protobuf/dynamic_message.h" -#include "google/protobuf/compiler/importer.h" +#include "google/protobuf/message.h" -#include "3rdparty/yyjson/yyjson.h" #include "3rdparty/bus_client/cbhomeclient.h" #include "3rdparty/bus_client/message.h" +#include "3rdparty/yyjson/yyjson.h" #include "proto/x86_64/sysset.pb.h" #include <vector> @@ -24,91 +24,84 @@ using namespace std; using google::protobuf::util::JsonStringToMessage; -bool json_to_proto(const std::string &json, google::protobuf::Message& message); -bool proto_to_json(const google::protobuf::Message& message, std::string& json); +bool json_to_proto(const std::string &json, google::protobuf::Message &message); +bool proto_to_json(const google::protobuf::Message &message, std::string &json); char *make_get_request(const char *topic); -bool bus_dbapi_get(void *handle, const char* topic, google::protobuf::Message& message); -bool bus_dbapi_get_topic_data(void *handle, const char* topic, crepmsg **pptr_repmsg, size_t len); -extern "C" int bus_dbapi_get_json_data(const char * json, char ** pptr_data, uint8_t *ptr_type); -bool bus_dbapi_get_str(void *handle, const char* topic, char **pptr_str); +bool bus_dbapi_get(void *handle, const char *topic, google::protobuf::Message &message); +bool bus_dbapi_get_topic_data(void *handle, const char *topic, crepmsg **pptr_repmsg, size_t len); +extern "C" int bus_dbapi_get_json_data(const char *json, char **pptr_data, uint8_t *ptr_type); +bool bus_dbapi_get_str(void *handle, const char *topic, char **pptr_str); int get_value_by_key(char *json, const char *key, char **pptr_data); -template <class T> bool bus_dbapi_get_list (char *json, T & list) -{ - char * ptr_value = NULL; - size_t data_len = 0; +template <class T> +bool bus_dbapi_get_list(char *json, T &list) { + char *ptr_value = NULL; + size_t data_len = 0; //get the topic json data - yyjson_type type = YYJSON_TYPE_OBJ; - - using TMPT = typename std::remove_reference<decltype(*list.begin())>::type; - TMPT t; + yyjson_type type = YYJSON_TYPE_OBJ; - //parse the json to get value of the key "data" + using TMPT = typename std::remove_reference<decltype(*list.begin())>::type; + TMPT t; + + //parse the json to get value of the key "data" int msglen = strlen(json); - char* msgdata = (char *)malloc(msglen); - memset(msgdata, 0 , msglen); + char *msgdata = (char *)malloc(msglen); + memset(msgdata, 0, msglen); - if(0 == bus_dbapi_get_json_data(json, &msgdata, &type)) - { - printf("======>> protomsg: %s\n", msgdata); + if (0 == bus_dbapi_get_json_data(json, &msgdata, &type)) { + printf("======>> protomsg: %s\n", msgdata); } //iterate the array to get the protobuf message - if (YYJSON_TYPE_ARR == type) - { + if (YYJSON_TYPE_ARR == type) { - printf("======>> deal the ARRAY\n"); - // Read JSON and get root - yyjson_doc *doc = yyjson_read(msgdata, strlen(msgdata), 0); - yyjson_val *arr = yyjson_doc_get_root(doc); + printf("======>> deal the ARRAY\n"); + // Read JSON and get root + yyjson_doc *doc = yyjson_read(msgdata, strlen(msgdata), 0); + yyjson_val *arr = yyjson_doc_get_root(doc); - //yyjson_val *arr = yyjson_obj_get(root, "data"); - yyjson_val *val; - yyjson_arr_iter iter; - yyjson_arr_iter_init(arr, &iter); - while ((val = yyjson_arr_iter_next(&iter))) - { - data_len = 0; - ptr_value = yyjson_val_write(val, YYJSON_WRITE_NOFLAG, &data_len); - printf("data: %s\n", ptr_value); - printf("len: %lu\n", data_len); + //yyjson_val *arr = yyjson_obj_get(root, "data"); + yyjson_val *val; + yyjson_arr_iter iter; + yyjson_arr_iter_init(arr, &iter); + while ((val = yyjson_arr_iter_next(&iter))) { + data_len = 0; + ptr_value = yyjson_val_write(val, YYJSON_WRITE_NOFLAG, &data_len); + printf("data: %s\n", ptr_value); + printf("len: %lu\n", data_len); - std::string jsonString = ptr_value; - if (json_to_proto(jsonString, t)) - { - printf("======>> json_to_proto done\n"); - list.push_back(t); - } - else - { - printf("======>> json_to_proto fail\n"); - yyjson_doc_free(doc); - free(msgdata); - return false; - } - } + std::string jsonString = ptr_value; + if (json_to_proto(jsonString, t)) { + printf("======>> json_to_proto done\n"); + list.push_back(t); + } else { + printf("======>> json_to_proto fail\n"); + yyjson_doc_free(doc); + free(msgdata); + return false; + } + } - // Free the doc + // Free the doc yyjson_doc_free(doc); - } + } free(msgdata); return true; -} +} -template <class T> bool bus_dbapi_get_list (void *handle, const char* topic, T & list) -{ - crepmsg *repmsg = NULL; +template <class T> +bool bus_dbapi_get_list(void *handle, const char *topic, T &list) { + crepmsg *repmsg = NULL; size_t len = 0; - bool iRet = false; - iRet = bus_dbapi_get_topic_data(handle, topic, &repmsg, len); - if ( (false == iRet)|| (NULL == repmsg)) - { - return false; - } - + bool iRet = false; + iRet = bus_dbapi_get_topic_data(handle, topic, &repmsg, len); + if ((false == iRet) || (NULL == repmsg)) { + return false; + } + iRet = bus_dbapi_get_list(repmsg->data, list); - free_reply_msg(repmsg); - return iRet; -} -#endif + free_reply_msg(repmsg); + return iRet; +} +#endif \ No newline at end of file diff --git a/versionctrlapi.cpp b/versionctrlapi.cpp index 1bc6fd7..6f92671 100644 --- a/versionctrlapi.cpp +++ b/versionctrlapi.cpp @@ -4,30 +4,30 @@ using namespace protomsg; //鑾峰彇鏈嶅姟鍣ㄦ湰鏈洪厤缃俊鎭� -bool dbapi_get_server_get_sn(void *handle, char * reply_msg){ - const char *topic = DATA_URL_PREFIX("/version/snBus"); - return bus_dbapi_get_str(handle, topic, &reply_msg); +bool dbapi_get_server_get_sn(void *handle, char *reply_msg) { + const char *topic = DATA_URL_PREFIX("/version/snBus"); + return bus_dbapi_get_str(handle, topic, &reply_msg); } -bool dbapi_get_server_get_is_sys_expired(void *handle) { - char * reply_msg = NULL; +bool dbapi_get_server_get_is_sys_expired(void *handle) { + char *reply_msg = NULL; bool is_expired = false; - bool ret = false; - bool expire_val = false; + bool ret = false; + bool expire_val = false; - ret = dbapi_get_server_get_sn(handle, reply_msg); - if(ret && reply_msg != NULL) - { - // Read JSON and get root - yyjson_doc *doc = yyjson_read(reply_msg, strlen(reply_msg), 0); - yyjson_val *root = yyjson_doc_get_root(doc); + ret = dbapi_get_server_get_sn(handle, reply_msg); + if (ret && reply_msg != NULL) { + // Read JSON and get root + yyjson_doc *doc = yyjson_read(reply_msg, strlen(reply_msg), 0); + yyjson_val *root = yyjson_doc_get_root(doc); yyjson_val *data = yyjson_obj_get(root, "expire"); expire_val = yyjson_get_bool(data); - printf("expire: %d\n", expire_val); - yyjson_doc_free(doc); - } + printf("expire: %d\n", expire_val); + yyjson_doc_free(doc); + } free(reply_msg); - return expire_val; + + return expire_val; } -- Gitblit v1.8.0