cheliequan
2023-01-29 dccc1ca1304dc1fcb86c8e24edd491509269b3e7
util.h
@@ -38,6 +38,35 @@
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_json( T &list, string &json)
{
    using TMPT = typename std::remove_reference<decltype(*list.begin())>::type;
    TMPT t;
    string jsonString;
    int len = list.size();
    bool bRet = false;
    jsonString += "[";
    for ( int i= 0 ; i < len ; i++ )
    {
        string tmpjsonString;
        bRet = proto_to_json(list[i], tmpjsonString);
      if ( (len > 1) &&(i < len - 1))
      {
          tmpjsonString += ",";
      }
      jsonString += tmpjsonString;
    }
    jsonString += "]";
    json = jsonString;
    return bRet;
}
template <class T>
bool bus_dbapi_get_list(char *json, const char *flag_key, const char *data_key, T &list) {
    char *ptr_value = NULL;
@@ -105,6 +134,24 @@
}
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 = (char *)"success";
       data_name = (char *)"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;
@@ -134,4 +181,4 @@
    return iRet;
}
#endif
#endif