Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
863ad191
T
TDengine
项目概览
taosdata
/
TDengine
1 年多 前同步成功
通知
1185
Star
22016
Fork
4786
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
TDengine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
863ad191
编写于
2月 21, 2022
作者:
S
Shengliang Guan
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
config interface
上级
84fd629b
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
183 addition
and
47 deletion
+183
-47
include/libs/config/config.h
include/libs/config/config.h
+47
-40
source/libs/config/inc/cfgInt.h
source/libs/config/inc/cfgInt.h
+2
-3
source/libs/config/src/config.c
source/libs/config/src/config.c
+134
-4
未找到文件。
include/libs/config/config.h
浏览文件 @
863ad191
...
...
@@ -24,7 +24,7 @@ extern "C" {
#endif
typedef
enum
{
CFG_TYPE_
NONE
,
CFG_TYPE_
DEFAULT
,
CFG_TYPE_TAOS_CFG
,
CFG_TYPE_DOT_ENV
,
CFG_TYPE_ENV_VAR
,
...
...
@@ -33,8 +33,8 @@ typedef enum {
}
ECfgType
;
typedef
enum
{
CFG_DYPE_NONE
,
CFG_DYPE_BOOL
,
CFG_D
T
YPE_NONE
,
CFG_D
T
YPE_BOOL
,
CFG_DTYPE_INT8
,
CFG_DTYPE_UINT8
,
CFG_DTYPE_INT16
,
...
...
@@ -62,6 +62,31 @@ typedef enum {
CFG_UTYPE_MS
}
ECfgUnitType
;
typedef
struct
SConfigItem
{
ECfgType
stype
;
ECfgUnitType
utype
;
ECfgDataType
dtype
;
const
char
*
name
;
union
{
bool
boolVal
;
uint8_t
uint8Val
;
int8_t
int8Val
;
uint16_t
uint16Val
;
int16_t
int16Val
;
uint32_t
uint32Val
;
int32_t
int32Val
;
uint64_t
uint64Val
;
int64_t
int64Val
;
float
floatVal
;
double
doubleVal
;
char
*
strVal
;
char
*
fqdnVal
;
char
*
ipstrVal
;
char
*
dirVal
;
char
*
fileVal
;
};
}
SConfigItem
;
typedef
struct
SConfig
SConfig
;
SConfig
*
cfgInit
();
...
...
@@ -69,44 +94,26 @@ int32_t cfgLoad(SConfig *pConfig, ECfgType cfgType, const char *sourceStr);
void
cfgCleanup
(
SConfig
*
pConfig
);
int32_t
cfgGetSize
(
SConfig
*
pConfig
);
void
*
cfgIterate
(
SConfig
*
pConfig
,
void
*
p
);
void
cfgCancelIterate
(
SConfig
*
pConfig
,
void
*
p
);
ECfgUnitType
cfgGetUtype
(
SConfig
*
pConfig
,
const
char
*
name
);
ECfgDataType
cfgGetDtype
(
SConfig
*
pConfig
,
const
char
*
name
);
void
cfgAddBool
(
SConfig
*
pConfig
,
const
char
*
name
,
bool
defaultVal
,
ECfgUnitType
utype
);
void
cfgAddInt8
(
SConfig
*
pConfig
,
const
char
*
name
,
int8_t
defaultVal
,
ECfgUnitType
utype
);
void
cfgAddUInt8
(
SConfig
*
pConfig
,
const
char
*
name
,
uint8_t
defaultVal
,
ECfgUnitType
utype
);
void
cfgAddInt16
(
SConfig
*
pConfig
,
const
char
*
name
,
int16_t
defaultVal
,
ECfgUnitType
utype
);
void
cfgAddUInt16
(
SConfig
*
pConfig
,
const
char
*
name
,
uint16_t
defaultVal
,
ECfgUnitType
utype
);
void
cfgAddInt32
(
SConfig
*
pConfig
,
const
char
*
name
,
int32_t
defaultVal
,
ECfgUnitType
utype
);
void
cfgAddUInt32
(
SConfig
*
pConfig
,
const
char
*
name
,
uint32_t
defaultVal
,
ECfgUnitType
utype
);
void
cfgAddInt64
(
SConfig
*
pConfig
,
const
char
*
name
,
int64_t
defaultVal
,
ECfgUnitType
utype
);
void
cfgAddUInt64
(
SConfig
*
pConfig
,
const
char
*
name
,
uint64_t
defaultVal
,
ECfgUnitType
utype
);
void
cfgAddFloat
(
SConfig
*
pConfig
,
const
char
*
name
,
float
defaultVal
,
ECfgUnitType
utype
);
void
cfgAddDouble
(
SConfig
*
pConfig
,
const
char
*
name
,
double
defaultVal
,
ECfgUnitType
utype
);
void
cfgAddString
(
SConfig
*
pConfig
,
const
char
*
name
,
const
char
*
defaultVal
,
ECfgUnitType
utype
);
void
cfgAddFqdn
(
SConfig
*
pConfig
,
const
char
*
name
,
const
char
*
defaultVal
,
ECfgUnitType
utype
);
void
cfgAddIpStr
(
SConfig
*
pConfig
,
const
char
*
name
,
const
char
*
defaultVal
,
ECfgUnitType
utype
);
void
cfgAddDir
(
SConfig
*
pConfig
,
const
char
*
name
,
const
char
*
defaultVal
,
ECfgUnitType
utype
);
void
cfgAddFile
(
SConfig
*
pConfig
,
const
char
*
name
,
const
char
*
defaultVal
,
ECfgUnitType
utype
);
SConfigItem
*
cfgIterate
(
SConfig
*
pConfig
,
SConfigItem
*
pIter
);
void
cfgCancelIterate
(
SConfig
*
pConfig
,
SConfigItem
*
pIter
);
SConfigItem
*
cfgGetItem
(
SConfig
*
pConfig
,
const
char
*
name
);
bool
cfgGetBool
(
SConfig
*
pConfig
,
const
char
*
nam
e
);
int
8_t
cfgGetInt8
(
SConfig
*
pConfig
,
const
char
*
nam
e
);
uint8_t
cfgGetUInt8
(
SConfig
*
pConfig
,
const
char
*
nam
e
);
int
16_t
cfgGetInt16
(
SConfig
*
pConfig
,
const
char
*
nam
e
);
uint16_t
cfgGetUInt16
(
SConfig
*
pConfig
,
const
char
*
nam
e
);
int32_t
cfgGetInt32
(
SConfig
*
pConfig
,
const
char
*
nam
e
);
uint32_t
cfgGetUInt32
(
SConfig
*
pConfig
,
const
char
*
nam
e
);
int
64_t
cfgGetInt64
(
SConfig
*
pConfig
,
const
char
*
nam
e
);
uint64_t
cfgGetUInt64
(
SConfig
*
pConfig
,
const
char
*
nam
e
);
float
cfgGetFloat
(
SConfig
*
pConfig
,
const
char
*
nam
e
);
double
cfgGetDouble
(
SConfig
*
pConfig
,
const
char
*
nam
e
);
const
char
*
cfgGetString
(
SConfig
*
pConfig
,
const
char
*
nam
e
);
const
char
*
cfgGetFqdn
(
SConfig
*
pConfig
,
const
char
*
nam
e
);
const
char
*
cfgGetIpStr
(
SConfig
*
pConfig
,
const
char
*
nam
e
);
const
char
*
cfgGetDir
(
SConfig
*
pConfig
,
const
char
*
nam
e
);
const
char
*
cfgGetFile
(
SConfig
*
pConfig
,
const
char
*
nam
e
);
int32_t
cfgAddBool
(
SConfig
*
pConfig
,
const
char
*
name
,
bool
defaultVal
,
ECfgUnitType
utyp
e
);
int
32_t
cfgAddInt8
(
SConfig
*
pConfig
,
const
char
*
name
,
int8_t
defaultVal
,
ECfgUnitType
utyp
e
);
int32_t
cfgAddUInt8
(
SConfig
*
pConfig
,
const
char
*
name
,
uint8_t
defaultVal
,
ECfgUnitType
utyp
e
);
int
32_t
cfgAddInt16
(
SConfig
*
pConfig
,
const
char
*
name
,
int16_t
defaultVal
,
ECfgUnitType
utyp
e
);
int32_t
cfgAddUInt16
(
SConfig
*
pConfig
,
const
char
*
name
,
uint16_t
defaultVal
,
ECfgUnitType
utyp
e
);
int32_t
cfgAddInt32
(
SConfig
*
pConfig
,
const
char
*
name
,
int32_t
defaultVal
,
ECfgUnitType
utyp
e
);
int32_t
cfgAddUInt32
(
SConfig
*
pConfig
,
const
char
*
name
,
uint32_t
defaultVal
,
ECfgUnitType
utyp
e
);
int
32_t
cfgAddInt64
(
SConfig
*
pConfig
,
const
char
*
name
,
int64_t
defaultVal
,
ECfgUnitType
utyp
e
);
int32_t
cfgAddUInt64
(
SConfig
*
pConfig
,
const
char
*
name
,
uint64_t
defaultVal
,
ECfgUnitType
utyp
e
);
int32_t
cfgAddFloat
(
SConfig
*
pConfig
,
const
char
*
name
,
float
defaultVal
,
ECfgUnitType
utyp
e
);
int32_t
cfgAddDouble
(
SConfig
*
pConfig
,
const
char
*
name
,
double
defaultVal
,
ECfgUnitType
utyp
e
);
int32_t
cfgAddString
(
SConfig
*
pConfig
,
const
char
*
name
,
const
char
*
defaultVal
,
ECfgUnitType
utyp
e
);
int32_t
cfgAddFqdn
(
SConfig
*
pConfig
,
const
char
*
name
,
const
char
*
defaultVal
,
ECfgUnitType
utyp
e
);
int32_t
cfgAddIpStr
(
SConfig
*
pConfig
,
const
char
*
name
,
const
char
*
defaultVal
,
ECfgUnitType
utyp
e
);
int32_t
cfgAddDir
(
SConfig
*
pConfig
,
const
char
*
name
,
const
char
*
defaultVal
,
ECfgUnitType
utyp
e
);
int32_t
cfgAddFile
(
SConfig
*
pConfig
,
const
char
*
name
,
const
char
*
defaultVal
,
ECfgUnitType
utyp
e
);
#ifdef __cplusplus
}
...
...
source/libs/config/inc/cfgInt.h
浏览文件 @
863ad191
...
...
@@ -18,8 +18,8 @@
#define _TD_CFG_INT_H_
#include "config.h"
#include "taoserror.h"
#include "thash.h"
#include "tlockfree.h"
#include "ulog.h"
#ifdef __cplusplus
...
...
@@ -27,8 +27,7 @@ extern "C" {
#endif
typedef
struct
SConfig
{
ECfgType
loadType
;
SRWLatch
lock
;
ECfgType
stype
;
SHashObj
*
hash
;
}
SConfig
;
...
...
source/libs/config/src/config.c
浏览文件 @
863ad191
...
...
@@ -36,10 +36,140 @@ int32_t cfgLoad(SConfig *pConfig, ECfgType cfgType, const char *sourceStr) {
}
}
void
cfgCleanup
(
SConfig
*
pConfig
)
{
free
(
pConfig
);
}
void
cfgCleanup
(
SConfig
*
pConfig
)
{
if
(
pConfig
==
NULL
)
return
;
if
(
pConfig
->
hash
!=
NULL
)
{
taosHashCleanup
(
pConfig
->
hash
);
pConfig
->
hash
==
NULL
;
}
}
int32_t
cfgGetSize
(
SConfig
*
pConfig
)
{
return
taosHashGetSize
(
pConfig
->
hash
);
}
SConfigItem
*
cfgIterate
(
SConfig
*
pConfig
,
SConfigItem
*
pIter
)
{
return
taosHashIterate
(
pConfig
->
hash
,
pIter
);
}
void
cfgCancelIterate
(
SConfig
*
pConfig
,
SConfigItem
*
pIter
)
{
return
taosHashCancelIterate
(
pConfig
->
hash
,
pIter
);
}
SConfigItem
*
cfgGetItem
(
SConfig
*
pConfig
,
const
char
*
name
)
{
taosHashGet
(
pConfig
->
hash
,
name
,
strlen
(
name
)
+
1
);
}
static
int32_t
cfgAddItem
(
SConfig
*
pConfig
,
SConfigItem
*
pItem
,
const
char
*
name
,
ECfgUnitType
utype
)
{
pItem
->
stype
=
CFG_TYPE_DEFAULT
;
pItem
->
utype
=
utype
;
pItem
->
name
=
strdup
(
name
);
if
(
pItem
->
name
!=
NULL
)
{
terrno
=
TSDB_CODE_OUT_OF_MEMORY
;
return
-
1
;
}
if
(
taosHashPut
(
pConfig
->
hash
,
name
,
strlen
(
name
)
+
1
,
pItem
,
sizeof
(
SConfigItem
))
!=
0
)
{
terrno
=
TSDB_CODE_OUT_OF_MEMORY
;
return
-
1
;
}
return
0
;
}
int32_t
cfgAddBool
(
SConfig
*
pConfig
,
const
char
*
name
,
bool
defaultVal
,
ECfgUnitType
utype
)
{
SConfigItem
item
=
{.
dtype
=
CFG_DTYPE_BOOL
,
.
boolVal
=
defaultVal
};
return
cfgAddItem
(
pConfig
,
&
item
,
name
,
utype
);
}
int32_t
cfgAddInt8
(
SConfig
*
pConfig
,
const
char
*
name
,
int8_t
defaultVal
,
ECfgUnitType
utype
)
{
SConfigItem
item
=
{.
dtype
=
CFG_DTYPE_INT8
,
.
int8Val
=
defaultVal
};
return
cfgAddItem
(
pConfig
,
&
item
,
name
,
utype
);
}
int32_t
cfgAddUInt8
(
SConfig
*
pConfig
,
const
char
*
name
,
uint8_t
defaultVal
,
ECfgUnitType
utype
)
{
SConfigItem
item
=
{.
dtype
=
CFG_DTYPE_UINT8
,
.
uint8Val
=
defaultVal
};
return
cfgAddItem
(
pConfig
,
&
item
,
name
,
utype
);
}
int32_t
cfgAddInt16
(
SConfig
*
pConfig
,
const
char
*
name
,
int16_t
defaultVal
,
ECfgUnitType
utype
)
{
SConfigItem
item
=
{.
dtype
=
CFG_DTYPE_INT16
,
.
int16Val
=
defaultVal
};
return
cfgAddItem
(
pConfig
,
&
item
,
name
,
utype
);
}
int32_t
cfgAddUInt16
(
SConfig
*
pConfig
,
const
char
*
name
,
uint16_t
defaultVal
,
ECfgUnitType
utype
)
{
SConfigItem
item
=
{.
dtype
=
CFG_DTYPE_UINT16
,
.
uint16Val
=
defaultVal
};
return
cfgAddItem
(
pConfig
,
&
item
,
name
,
utype
);
}
int32_t
cfgAddInt32
(
SConfig
*
pConfig
,
const
char
*
name
,
int32_t
defaultVal
,
ECfgUnitType
utype
)
{
SConfigItem
item
=
{.
dtype
=
CFG_DTYPE_INT32
,
.
int32Val
=
defaultVal
};
return
cfgAddItem
(
pConfig
,
&
item
,
name
,
utype
);
}
int32_t
cfgAddUInt32
(
SConfig
*
pConfig
,
const
char
*
name
,
uint32_t
defaultVal
,
ECfgUnitType
utype
)
{
SConfigItem
item
=
{.
dtype
=
CFG_DTYPE_UINT32
,
.
uint32Val
=
defaultVal
};
return
cfgAddItem
(
pConfig
,
&
item
,
name
,
utype
);
}
int32_t
cfgAddInt64
(
SConfig
*
pConfig
,
const
char
*
name
,
int64_t
defaultVal
,
ECfgUnitType
utype
)
{
SConfigItem
item
=
{.
dtype
=
CFG_DTYPE_INT64
,
.
int64Val
=
defaultVal
};
return
cfgAddItem
(
pConfig
,
&
item
,
name
,
utype
);
}
int32_t
cfgAddUInt64
(
SConfig
*
pConfig
,
const
char
*
name
,
uint64_t
defaultVal
,
ECfgUnitType
utype
)
{
SConfigItem
item
=
{.
dtype
=
CFG_DTYPE_UINT64
,
.
uint64Val
=
defaultVal
};
return
cfgAddItem
(
pConfig
,
&
item
,
name
,
utype
);
}
int32_t
cfgAddFloat
(
SConfig
*
pConfig
,
const
char
*
name
,
float
defaultVal
,
ECfgUnitType
utype
)
{
SConfigItem
item
=
{.
dtype
=
CFG_DTYPE_FLOAT
,
.
floatVal
=
defaultVal
};
return
cfgAddItem
(
pConfig
,
&
item
,
name
,
utype
);
}
int32_t
cfgGetSize
(
SConfig
*
pConfig
)
{
return
0
;
}
int32_t
cfgAddDouble
(
SConfig
*
pConfig
,
const
char
*
name
,
double
defaultVal
,
ECfgUnitType
utype
)
{
SConfigItem
item
=
{.
dtype
=
CFG_DTYPE_DOUBLE
,
.
doubleVal
=
defaultVal
};
return
cfgAddItem
(
pConfig
,
&
item
,
name
,
utype
);
}
void
*
cfgIterate
(
SConfig
*
pConfig
,
void
*
p
)
{
return
NULL
;
}
int32_t
cfgAddString
(
SConfig
*
pConfig
,
const
char
*
name
,
const
char
*
defaultVal
,
ECfgUnitType
utype
)
{
SConfigItem
item
=
{.
dtype
=
CFG_DTYPE_STRING
};
item
.
strVal
=
strdup
(
defaultVal
);
if
(
item
.
strVal
!=
NULL
)
{
terrno
=
TSDB_CODE_OUT_OF_MEMORY
;
return
-
1
;
}
return
cfgAddItem
(
pConfig
,
&
item
,
name
,
utype
);
}
void
cfgCancelIterate
(
SConfig
*
pConfig
,
void
*
p
);
int32_t
cfgAddFqdn
(
SConfig
*
pConfig
,
const
char
*
name
,
const
char
*
defaultVal
,
ECfgUnitType
utype
)
{
SConfigItem
item
=
{.
dtype
=
CFG_DTYPE_FQDN
};
item
.
fqdnVal
=
strdup
(
defaultVal
);
if
(
item
.
fqdnVal
!=
NULL
)
{
terrno
=
TSDB_CODE_OUT_OF_MEMORY
;
return
-
1
;
}
return
cfgAddItem
(
pConfig
,
&
item
,
name
,
utype
);
}
int32_t
cfgAddIpStr
(
SConfig
*
pConfig
,
const
char
*
name
,
const
char
*
defaultVal
,
ECfgUnitType
utype
)
{
SConfigItem
item
=
{.
dtype
=
CFG_DTYPE_IPSTR
};
item
.
ipstrVal
=
strdup
(
defaultVal
);
if
(
item
.
ipstrVal
!=
NULL
)
{
terrno
=
TSDB_CODE_OUT_OF_MEMORY
;
return
-
1
;
}
return
cfgAddItem
(
pConfig
,
&
item
,
name
,
utype
);
}
int32_t
cfgAddDir
(
SConfig
*
pConfig
,
const
char
*
name
,
const
char
*
defaultVal
,
ECfgUnitType
utype
)
{
SConfigItem
item
=
{.
dtype
=
CFG_DTYPE_DIR
};
item
.
dirVal
=
strdup
(
defaultVal
);
if
(
item
.
dirVal
!=
NULL
)
{
terrno
=
TSDB_CODE_OUT_OF_MEMORY
;
return
-
1
;
}
return
cfgAddItem
(
pConfig
,
&
item
,
name
,
utype
);
}
int32_t
cfgAddFile
(
SConfig
*
pConfig
,
const
char
*
name
,
const
char
*
defaultVal
,
ECfgUnitType
utype
)
{
SConfigItem
item
=
{.
dtype
=
CFG_DTYPE_FILE
};
item
.
fileVal
=
strdup
(
defaultVal
);
if
(
item
.
fileVal
!=
NULL
)
{
terrno
=
TSDB_CODE_OUT_OF_MEMORY
;
return
-
1
;
}
return
cfgAddItem
(
pConfig
,
&
item
,
name
,
utype
);
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录