提交 6d196847 编写于 作者: wmmhello's avatar wmmhello

[TD-5992] add set config interface for connector

上级 d3c9fc73
......@@ -8,10 +8,11 @@ AUX_SOURCE_DIRECTORY(src SRC)
IF (TD_LINUX)
INCLUDE_DIRECTORIES(${TD_COMMUNITY_DIR}/deps/jni/linux)
INCLUDE_DIRECTORIES(${TD_COMMUNITY_DIR}/deps/cJson/inc)
# set the static lib name
ADD_LIBRARY(taos_static STATIC ${SRC})
TARGET_LINK_LIBRARIES(taos_static common query trpc tutil pthread m rt ${VAR_TSZ})
TARGET_LINK_LIBRARIES(taos_static common query trpc tutil pthread cJson m rt ${VAR_TSZ})
SET_TARGET_PROPERTIES(taos_static PROPERTIES OUTPUT_NAME "taos_static")
SET_TARGET_PROPERTIES(taos_static PROPERTIES CLEAN_DIRECT_OUTPUT 1)
......@@ -34,10 +35,11 @@ IF (TD_LINUX)
ELSEIF (TD_DARWIN)
INCLUDE_DIRECTORIES(${TD_COMMUNITY_DIR}/deps/jni/linux)
INCLUDE_DIRECTORIES(${TD_COMMUNITY_DIR}/deps/cJson/inc)
# set the static lib name
ADD_LIBRARY(taos_static STATIC ${SRC})
TARGET_LINK_LIBRARIES(taos_static common query trpc tutil pthread m lua)
TARGET_LINK_LIBRARIES(taos_static common query trpc tutil pthread m lua cJson)
SET_TARGET_PROPERTIES(taos_static PROPERTIES OUTPUT_NAME "taos_static")
SET_TARGET_PROPERTIES(taos_static PROPERTIES CLEAN_DIRECT_OUTPUT 1)
......@@ -57,11 +59,12 @@ ELSEIF (TD_DARWIN)
ELSEIF (TD_WINDOWS)
INCLUDE_DIRECTORIES(${TD_COMMUNITY_DIR}/deps/jni/windows)
INCLUDE_DIRECTORIES(${TD_COMMUNITY_DIR}/deps/jni/windows/win32)
INCLUDE_DIRECTORIES(${TD_COMMUNITY_DIR}/deps/cJson/inc)
CONFIGURE_FILE("${TD_COMMUNITY_DIR}/src/client/src/taos.rc.in" "${TD_COMMUNITY_DIR}/src/client/src/taos.rc")
ADD_LIBRARY(taos_static STATIC ${SRC})
TARGET_LINK_LIBRARIES(taos_static trpc tutil query)
TARGET_LINK_LIBRARIES(taos_static trpc tutil cJson query)
# generate dynamic library (*.dll)
ADD_LIBRARY(taos SHARED ${SRC} ${TD_COMMUNITY_DIR}/src/client/src/taos.rc)
......@@ -73,9 +76,10 @@ ELSEIF (TD_WINDOWS)
ELSEIF (TD_DARWIN)
SET(CMAKE_MACOSX_RPATH 1)
INCLUDE_DIRECTORIES(${TD_COMMUNITY_DIR}/deps/jni/linux)
INCLUDE_DIRECTORIES(${TD_COMMUNITY_DIR}/deps/cJson/inc)
ADD_LIBRARY(taos_static STATIC ${SRC})
TARGET_LINK_LIBRARIES(taos_static query trpc tutil pthread m lua)
TARGET_LINK_LIBRARIES(taos_static query trpc tutil pthread cJson m lua)
SET_TARGET_PROPERTIES(taos_static PROPERTIES OUTPUT_NAME "taos_static")
# generate dynamic library (*.dylib)
......
......@@ -120,6 +120,41 @@ int32_t tscAcquireRpc(const char *key, const char *user, const char *secretEncry
return 0;
}
#include "cJSON.h"
static pthread_mutex_t setConfMutex = PTHREAD_MUTEX_INITIALIZER;
static bool setConfFlag = false;
int taos_set_config(const char *config){
if(taos_init() == false){
tscError("failed to call taos_init");
return -1;
}
pthread_mutex_lock(&setConfMutex);
if (setConfFlag) {
tscError("already set config");
return 0;
}
cJSON *root = cJSON_Parse(config);
if (root == NULL) {
tscError("failed to set config, invalid json format: %s", config);
return -1;
}
int size = cJSON_GetArraySize(root);
for(int i = 0; i < size; i++){
cJSON *item = cJSON_GetArrayItem(root, i);
if (!item) {
tscError("failed to read index:%d", i);
continue;
}
taosReadConfigOption(item->string, item->valuestring, NULL, NULL);
}
setConfFlag = true;
pthread_mutex_unlock(&setConfMutex);
return 0;
}
void taos_init_imp(void) {
char temp[128] = {0};
......
......@@ -89,6 +89,7 @@ void taosDumpGlobalCfg();
void taosInitConfigOption(SGlobalCfg cfg);
SGlobalCfg * taosGetConfigOption(const char *option);
void taosReadConfigOption(const char *option, char *value, char *value2, char *value3);
#ifdef __cplusplus
}
......
......@@ -258,7 +258,7 @@ SGlobalCfg *taosGetConfigOption(const char *option) {
return NULL;
}
static void taosReadConfigOption(const char *option, char *value, char *value2, char *value3) {
void taosReadConfigOption(const char *option, char *value, char *value2, char *value3) {
for (int i = 0; i < tsGlobalConfigNum; ++i) {
SGlobalCfg *cfg = tsGlobalConfig + i;
if (!(cfg->cfgType & TSDB_CFG_CTYPE_B_CONFIG)) continue;
......@@ -560,40 +560,4 @@ void taosDumpGlobalCfg() {
taosDumpCfg(cfg);
}
}
#include "cJSON.h"
static pthread_mutex_t setConfMutex = PTHREAD_MUTEX_INITIALIZER;
static bool setConfFlag = false;
int taos_set_config(const char *config){
if(taos_init() == false){
uError("failed to call taos_init");
return -1;
}
pthread_mutex_lock(&setConfMutex);
if (setConfFlag) {
uError("already set config");
return 0;
}
cJSON *root = cJSON_Parse(config);
if (root == NULL) {
uError("failed to set config, invalid json format: %s", config);
return -1;
}
int size = cJSON_GetArraySize(root);
for(int i = 0; i < size; i++){
cJSON *item = cJSON_GetArrayItem(root, i);
if (!item) {
uError("failed to read index:%d", i);
continue;
}
taosReadConfigOption(item->string, item->valuestring, NULL, NULL);
}
setConfFlag = true;
pthread_mutex_unlock(&setConfMutex);
return 0;
}
}
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册