From 71156fd4aaa5f18ba9f95f9f08bc930a321e257c Mon Sep 17 00:00:00 2001 From: zhangzengfei <zhangzengfei@smartai.com> Date: 星期一, 16 一月 2023 11:26:58 +0800 Subject: [PATCH] 完善摄像机接口, 增加实时轮询参数 --- util.h | 34 ++++++++++++++++++++++++++++++++-- 1 files changed, 32 insertions(+), 2 deletions(-) diff --git a/util.h b/util.h index 1533e90..3cd6741 100644 --- a/util.h +++ b/util.h @@ -26,14 +26,20 @@ 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); +char *make_get_request(const char *topic, const std::map<string, string> *query_params); + 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); +bool bus_dbapi_get_topic_data(void *handle, const char *topic, crepmsg **pptr_repmsg, size_t len, std::map<string, string> ¶ms); +extern "C" int bus_dbapi_get_json_data_by_key(const char *json, const char *flag_key, const char *data_key, char **pptr_data, yyjson_type *ptr_type); 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) { +bool bus_dbapi_get_list(char *json, const char *flag_key, const char *data_key, T &list) { char *ptr_value = NULL; size_t data_len = 0; //get the topic json data @@ -47,7 +53,7 @@ char *msgdata = (char *)malloc(msglen); memset(msgdata, 0, msglen); - if (0 == bus_dbapi_get_json_data(json, &msgdata, &type)) { + if (0 == bus_dbapi_get_json_data_by_key(json, flag_key, data_key, &msgdata, &type)) { printf("======>> protomsg: %s\n", msgdata); } @@ -91,6 +97,14 @@ } template <class T> +bool bus_dbapi_get_list(char *json, T &list) { + const char *success_name = "success"; + const char *data_name = "data"; + + return bus_dbapi_get_list(json, success_name, data_name, list); +} + +template <class T> bool bus_dbapi_get_list(void *handle, const char *topic, T &list) { crepmsg *repmsg = NULL; size_t len = 0; @@ -104,4 +118,20 @@ free_reply_msg(repmsg); return iRet; } + +template <class T> +bool bus_dbapi_get_list(void *handle, const char *topic, T &list, std::map<string, string> ¶ms) { + crepmsg *repmsg = NULL; + size_t len = 0; + bool iRet = false; + iRet = bus_dbapi_get_topic_data(handle, topic, &repmsg, len, params); + if ((false == iRet) || (NULL == repmsg)) { + return false; + } + + iRet = bus_dbapi_get_list(repmsg->data, list); + free_reply_msg(repmsg); + return iRet; +} + #endif \ No newline at end of file -- Gitblit v1.8.0