| | |
| | | |
| | | bool dbapi_get_dayctls(char *timeRules, std::vector<protomsg::DayCtl> & list) |
| | | { |
| | | const char * flag_key = NULL; |
| | | bool is_array = true; |
| | | |
| | | const char * data_key = "time_rule"; |
| | | |
| | | bool ret = bus_dbapi_get_list(timeRules, flag_key, data_key, list); |
| | | bool ret = bus_dbapi_get_list(timeRules, is_array, list); |
| | | |
| | | return ret; |
| | | |
| | |
| | | { |
| | | const char * flag_key = NULL; |
| | | |
| | | const char * data_key = "time_range"; |
| | | const char * data_key = NULL; |
| | | |
| | | bool ret = bus_dbapi_get_list(datactls, flag_key, data_key, list); |
| | | |
| | |
| | | |
| | | // Get root["data"] |
| | | //yyjson_val *msg = yyjson_obj_get(root, "data"); |
| | | yyjson_val *data = yyjson_obj_get(root, data_name); |
| | | yyjson_val *data; |
| | | if ( NULL != data_name ) |
| | | { |
| | | data = yyjson_obj_get(root, data_name); |
| | | } |
| | | else |
| | | { |
| | | data = root; |
| | | } |
| | | |
| | | |
| | | *ptr_type = yyjson_get_type(data); |
| | | ptr_value = yyjson_val_write(data, YYJSON_WRITE_NOFLAG, &data_len); |
| | |
| | | } |
| | | |
| | | template <class T> |
| | | bool bus_dbapi_get_list(char *json, bool is_array, T &list) { |
| | | char *success_name = NULL; |
| | | char *data_name = NULL; |
| | | if ( is_array ) |
| | | { |
| | | success_name = NULL; |
| | | data_name = NULL; |
| | | } |
| | | else |
| | | { |
| | | success_name = "success"; |
| | | data_name = "data"; |
| | | } |
| | | |
| | | return bus_dbapi_get_list(json, (const char *)success_name, (const char *)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; |