98 lines
2.6 KiB
C
98 lines
2.6 KiB
C
/*
|
|
* Copyright (c) 2019 TAOS Data, Inc. <jhtao@taosdata.com>
|
|
*
|
|
* This program is free software: you can use, redistribute, and/or modify
|
|
* it under the terms of the GNU Affero General Public License, version 3
|
|
* or later ("AGPL"), as published by the Free Software Foundation.
|
|
*
|
|
* This program is distributed in the hope that it will be useful, but WITHOUT
|
|
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
* FITNESS FOR A PARTICULAR PURPOSE.
|
|
*
|
|
* You should have received a copy of the GNU Affero General Public License
|
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
*/
|
|
|
|
#ifndef _TD_UTIL_CONFIG_H
|
|
#define _TD_UTIL_CONFIG_H
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
#define TSDB_CFG_MAX_NUM 115
|
|
#define TSDB_CFG_PRINT_LEN 23
|
|
#define TSDB_CFG_OPTION_LEN 24
|
|
#define TSDB_CFG_VALUE_LEN 41
|
|
|
|
#define TSDB_CFG_CTYPE_B_CONFIG 1U // can be configured from file
|
|
#define TSDB_CFG_CTYPE_B_SHOW 2U // can displayed by "show configs" commands
|
|
#define TSDB_CFG_CTYPE_B_LOG 4U // is a log type configuration
|
|
#define TSDB_CFG_CTYPE_B_CLIENT 8U // can be displayed in the client log
|
|
#define TSDB_CFG_CTYPE_B_OPTION 16U // can be configured by taos_options function
|
|
#define TSDB_CFG_CTYPE_B_NOT_PRINT 32U // such as password
|
|
|
|
#define MAX_FLOAT 100000
|
|
#define MIN_FLOAT 0
|
|
|
|
enum {
|
|
TAOS_CFG_CSTATUS_NONE, // not configured
|
|
TAOS_CFG_CSTATUS_DEFAULT, // use system default value
|
|
TAOS_CFG_CSTATUS_FILE, // configured from file
|
|
TAOS_CFG_CSTATUS_OPTION, // configured by taos_options function
|
|
TAOS_CFG_CSTATUS_ARG, // configured by program argument
|
|
};
|
|
|
|
enum {
|
|
TAOS_CFG_VTYPE_INT8,
|
|
TAOS_CFG_VTYPE_INT16,
|
|
TAOS_CFG_VTYPE_INT32,
|
|
TAOS_CFG_VTYPE_UINT16,
|
|
TAOS_CFG_VTYPE_FLOAT,
|
|
TAOS_CFG_VTYPE_STRING,
|
|
TAOS_CFG_VTYPE_IPSTR,
|
|
TAOS_CFG_VTYPE_DIRECTORY,
|
|
TAOS_CFG_VTYPE_DATA_DIRCTORY,
|
|
TAOS_CFG_VTYPE_DOUBLE,
|
|
};
|
|
|
|
enum {
|
|
TAOS_CFG_UTYPE_NONE,
|
|
TAOS_CFG_UTYPE_PERCENT,
|
|
TAOS_CFG_UTYPE_GB,
|
|
TAOS_CFG_UTYPE_MB,
|
|
TAOS_CFG_UTYPE_BYTE,
|
|
TAOS_CFG_UTYPE_SECOND,
|
|
TAOS_CFG_UTYPE_MS
|
|
};
|
|
|
|
typedef struct {
|
|
char * option;
|
|
void * ptr;
|
|
float minValue;
|
|
float maxValue;
|
|
int8_t cfgType;
|
|
int8_t cfgStatus;
|
|
int8_t unitType;
|
|
int8_t valType;
|
|
int32_t ptrLength;
|
|
} SGlobalCfg;
|
|
|
|
extern SGlobalCfg tsGlobalConfig[];
|
|
extern int32_t tsGlobalConfigNum;
|
|
extern char * tsCfgStatusStr[];
|
|
|
|
void taosReadGlobalLogCfg();
|
|
int32_t taosReadCfgFromFile();
|
|
void taosPrintCfg();
|
|
void taosDumpGlobalCfg();
|
|
|
|
void taosAddConfigOption(SGlobalCfg cfg);
|
|
SGlobalCfg *taosGetConfigOption(const char *option);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif /*_TD_UTIL_CONFIG_H*/
|