storage the configuartion item default value as constant string value
This commit is contained in:
@ -115,8 +115,6 @@ void ObConfigItem::init(Scope::ScopeInfo scope_info,
|
||||
set_name(name);
|
||||
if (!set_value(def)) {
|
||||
OB_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "Set config item value failed", K(name), K(def));
|
||||
} else if (!set_default_value(def)) {
|
||||
OB_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "Set config item default value failed", K(name), K(def));
|
||||
} else {
|
||||
set_info(info);
|
||||
attr_ = attr;
|
||||
@ -768,7 +766,7 @@ ObConfigMomentItem::ObConfigMomentItem(ObConfigContainer *container,
|
||||
const char *def,
|
||||
const char *info,
|
||||
const ObParameterAttr attr)
|
||||
: value_()
|
||||
: value_()
|
||||
{
|
||||
MEMSET(value_str_, 0, sizeof(value_str_));
|
||||
MEMSET(value_reboot_str_, 0, sizeof(value_reboot_str_));
|
||||
|
@ -148,18 +148,6 @@ public:
|
||||
}
|
||||
return ret == OB_SUCCESS;
|
||||
}
|
||||
bool set_default_value(const char *str)
|
||||
{
|
||||
int64_t pos = 0;
|
||||
int ret = OB_SUCCESS;
|
||||
const char *ptr = value_default_ptr();
|
||||
if (nullptr == ptr) {
|
||||
ret = OB_INVALID_ARGUMENT;
|
||||
} else {
|
||||
ret = databuff_printf(const_cast<char *>(ptr), value_default_len(), pos, "%s", str);
|
||||
}
|
||||
return OB_SUCCESS == ret;
|
||||
}
|
||||
virtual bool set_dump_value(const char *str)
|
||||
{
|
||||
UNUSED(str);
|
||||
@ -201,10 +189,6 @@ public:
|
||||
ObLatchRGuard rd_guard(const_cast<ObLatch&>(lock_), ObLatchIds::CONFIG_LOCK);
|
||||
return value_ptr();
|
||||
}
|
||||
const char *default_str() const
|
||||
{
|
||||
return value_default_ptr();
|
||||
}
|
||||
int case_compare(const char* str) const
|
||||
{
|
||||
ObLatchRGuard rd_guard(const_cast<ObLatch&>(lock_), ObLatchIds::CONFIG_LOCK);
|
||||
@ -257,7 +241,10 @@ public:
|
||||
virtual ObConfigItemType get_config_item_type() const {
|
||||
return ObConfigItemType::OB_CONF_ITEM_TYPE_UNKNOWN;
|
||||
}
|
||||
|
||||
const char *default_str() const
|
||||
{
|
||||
return value_default_ptr();
|
||||
}
|
||||
protected:
|
||||
//use current value to do input operation
|
||||
virtual bool set(const char *str) = 0;
|
||||
@ -266,8 +253,6 @@ protected:
|
||||
virtual uint64_t value_len() const = 0;
|
||||
virtual uint64_t value_reboot_len() const = 0;
|
||||
virtual const char *value_default_ptr() const = 0;
|
||||
virtual uint64_t value_default_len() const = 0;
|
||||
|
||||
const ObConfigChecker *ck_;
|
||||
int64_t version_;
|
||||
int64_t dumped_version_;
|
||||
@ -345,19 +330,18 @@ protected:
|
||||
int size_;
|
||||
bool valid_;
|
||||
};
|
||||
|
||||
virtual const char *get_default_ptr() const = 0;
|
||||
|
||||
const char *value_default_ptr() const override
|
||||
{
|
||||
return value_default_str_;
|
||||
}
|
||||
uint64_t value_default_len() const override
|
||||
{
|
||||
return sizeof(value_default_str_);
|
||||
return get_default_ptr();
|
||||
}
|
||||
|
||||
struct ObInnerConfigIntListItem value_;
|
||||
static const uint64_t VALUE_BUF_SIZE = 32 * MAX_INDEX_SIZE;
|
||||
char value_str_[VALUE_BUF_SIZE];
|
||||
char value_reboot_str_[VALUE_BUF_SIZE];
|
||||
char value_default_str_[VALUE_BUF_SIZE];
|
||||
private:
|
||||
DISALLOW_COPY_AND_ASSIGN(ObConfigIntListItem);
|
||||
};
|
||||
@ -406,7 +390,6 @@ public:
|
||||
virtual ObConfigItemType get_config_item_type() const {
|
||||
return ObConfigItemType::OB_CONF_ITEM_TYPE_STRLIST;
|
||||
}
|
||||
|
||||
public:
|
||||
static const int64_t MAX_INDEX_SIZE = 64;
|
||||
static const uint64_t VALUE_BUF_SIZE = 65536UL;
|
||||
@ -479,17 +462,16 @@ protected:
|
||||
{
|
||||
return sizeof(value_reboot_str_);
|
||||
}
|
||||
|
||||
virtual const char *get_default_ptr() const = 0;
|
||||
|
||||
const char *value_default_ptr() const override
|
||||
{
|
||||
return value_default_str_;
|
||||
}
|
||||
uint64_t value_default_len() const override
|
||||
{
|
||||
return sizeof(value_default_str_);
|
||||
return get_default_ptr();
|
||||
}
|
||||
|
||||
char value_str_[VALUE_BUF_SIZE];
|
||||
char value_reboot_str_[VALUE_BUF_SIZE];
|
||||
char value_default_str_[VALUE_BUF_SIZE];
|
||||
private:
|
||||
DISALLOW_COPY_AND_ASSIGN(ObConfigStrListItem);
|
||||
};
|
||||
@ -537,6 +519,11 @@ protected:
|
||||
virtual bool set(const char *str);
|
||||
virtual int64_t parse(const char *str, bool &valid) const = 0;
|
||||
|
||||
virtual const char *get_default_ptr() const = 0;
|
||||
const char *value_default_ptr() const override
|
||||
{
|
||||
return get_default_ptr();
|
||||
}
|
||||
private:
|
||||
int64_t value_;
|
||||
int64_t min_value_;
|
||||
@ -602,7 +589,6 @@ public:
|
||||
return ObConfigItemType::OB_CONF_ITEM_TYPE_DOUBLE;
|
||||
}
|
||||
virtual bool check() const override;
|
||||
|
||||
protected:
|
||||
//use current value to do input operation
|
||||
bool set(const char *str);
|
||||
@ -623,18 +609,16 @@ protected:
|
||||
{
|
||||
return sizeof(value_reboot_str_);
|
||||
}
|
||||
|
||||
virtual const char *get_default_ptr() const = 0;
|
||||
|
||||
const char *value_default_ptr() const override
|
||||
{
|
||||
return value_default_str_;
|
||||
}
|
||||
uint64_t value_default_len() const override
|
||||
{
|
||||
return sizeof(value_default_str_);
|
||||
return get_default_ptr();
|
||||
}
|
||||
static const uint64_t VALUE_BUF_SIZE = 64UL;
|
||||
char value_str_[VALUE_BUF_SIZE];
|
||||
char value_reboot_str_[VALUE_BUF_SIZE];
|
||||
char value_default_str_[VALUE_BUF_SIZE];
|
||||
|
||||
private:
|
||||
double value_;
|
||||
@ -694,7 +678,6 @@ public:
|
||||
virtual ObConfigItemType get_config_item_type() const {
|
||||
return ObConfigItemType::OB_CONF_ITEM_TYPE_CAPACITY;
|
||||
}
|
||||
|
||||
protected:
|
||||
int64_t parse(const char *str, bool &valid) const;
|
||||
const char *value_ptr() const override
|
||||
@ -713,18 +696,17 @@ protected:
|
||||
{
|
||||
return sizeof(value_reboot_str_);
|
||||
}
|
||||
|
||||
virtual const char *get_default_ptr() const = 0;
|
||||
|
||||
const char *value_default_ptr() const override
|
||||
{
|
||||
return value_default_str_;
|
||||
}
|
||||
uint64_t value_default_len() const override
|
||||
{
|
||||
return sizeof(value_default_str_);
|
||||
return get_default_ptr();
|
||||
}
|
||||
|
||||
static const uint64_t VALUE_BUF_SIZE = 32UL;
|
||||
char value_str_[VALUE_BUF_SIZE];
|
||||
char value_reboot_str_[VALUE_BUF_SIZE];
|
||||
char value_default_str_[VALUE_BUF_SIZE];
|
||||
|
||||
private:
|
||||
DISALLOW_COPY_AND_ASSIGN(ObConfigCapacityItem);
|
||||
@ -761,7 +743,6 @@ public:
|
||||
virtual ObConfigItemType get_config_item_type() const {
|
||||
return ObConfigItemType::OB_CONF_ITEM_TYPE_TIME;
|
||||
}
|
||||
|
||||
protected:
|
||||
int64_t parse(const char *str, bool &valid) const;
|
||||
const char *value_ptr() const override
|
||||
@ -780,18 +761,15 @@ protected:
|
||||
{
|
||||
return sizeof(value_reboot_str_);
|
||||
}
|
||||
virtual const char *get_default_ptr() const = 0;
|
||||
const char *value_default_ptr() const override
|
||||
{
|
||||
return value_default_str_;
|
||||
}
|
||||
uint64_t value_default_len() const override
|
||||
{
|
||||
return sizeof(value_default_str_);
|
||||
return get_default_ptr();
|
||||
}
|
||||
|
||||
static const uint64_t VALUE_BUF_SIZE = 32UL;
|
||||
char value_str_[VALUE_BUF_SIZE];
|
||||
char value_reboot_str_[VALUE_BUF_SIZE];
|
||||
char value_default_str_[VALUE_BUF_SIZE];
|
||||
|
||||
private:
|
||||
DISALLOW_COPY_AND_ASSIGN(ObConfigTimeItem);
|
||||
@ -827,7 +805,6 @@ public:
|
||||
virtual ObConfigItemType get_config_item_type() const {
|
||||
return ObConfigItemType::OB_CONF_ITEM_TYPE_INT;
|
||||
}
|
||||
|
||||
protected:
|
||||
int64_t parse(const char *str, bool &valid) const;
|
||||
const char *value_ptr() const override
|
||||
@ -846,18 +823,15 @@ protected:
|
||||
{
|
||||
return sizeof(value_reboot_str_);
|
||||
}
|
||||
virtual const char *get_default_ptr() const = 0;
|
||||
const char *value_default_ptr() const override
|
||||
{
|
||||
return value_default_str_;
|
||||
}
|
||||
uint64_t value_default_len() const override
|
||||
{
|
||||
return sizeof(value_default_str_);
|
||||
return get_default_ptr();
|
||||
}
|
||||
|
||||
static const uint64_t VALUE_BUF_SIZE = 32UL;
|
||||
char value_str_[VALUE_BUF_SIZE];
|
||||
char value_reboot_str_[VALUE_BUF_SIZE];
|
||||
char value_default_str_[VALUE_BUF_SIZE];
|
||||
|
||||
private:
|
||||
DISALLOW_COPY_AND_ASSIGN(ObConfigIntItem);
|
||||
@ -900,7 +874,6 @@ public:
|
||||
}
|
||||
return *this;
|
||||
}
|
||||
|
||||
public:
|
||||
struct ObInnerConfigMomentItem
|
||||
{
|
||||
@ -929,18 +902,15 @@ protected:
|
||||
{
|
||||
return sizeof(value_reboot_str_);
|
||||
}
|
||||
virtual const char *get_default_ptr() const = 0;
|
||||
const char *value_default_ptr() const override
|
||||
{
|
||||
return value_default_str_;
|
||||
}
|
||||
uint64_t value_default_len() const override
|
||||
{
|
||||
return sizeof(value_default_str_);
|
||||
return get_default_ptr();
|
||||
}
|
||||
|
||||
static const uint64_t VALUE_BUF_SIZE = 64UL;
|
||||
char value_str_[VALUE_BUF_SIZE];
|
||||
char value_reboot_str_[VALUE_BUF_SIZE];
|
||||
char value_default_str_[VALUE_BUF_SIZE];
|
||||
|
||||
private:
|
||||
struct ObInnerConfigMomentItem value_;
|
||||
@ -965,7 +935,6 @@ public:
|
||||
virtual ObConfigItemType get_config_item_type() const {
|
||||
return ObConfigItemType::OB_CONF_ITEM_TYPE_BOOL;
|
||||
}
|
||||
|
||||
protected:
|
||||
//use current value to do input operation
|
||||
bool set(const char *str);
|
||||
@ -986,18 +955,15 @@ protected:
|
||||
{
|
||||
return sizeof(value_reboot_str_);
|
||||
}
|
||||
virtual const char *get_default_ptr() const = 0;
|
||||
const char *value_default_ptr() const override
|
||||
{
|
||||
return value_default_str_;
|
||||
}
|
||||
uint64_t value_default_len() const override
|
||||
{
|
||||
return sizeof(value_default_str_);
|
||||
return get_default_ptr();
|
||||
}
|
||||
|
||||
static const uint64_t VALUE_BUF_SIZE = 8UL;
|
||||
char value_str_[VALUE_BUF_SIZE];
|
||||
char value_reboot_str_[VALUE_BUF_SIZE];
|
||||
char value_default_str_[VALUE_BUF_SIZE];
|
||||
|
||||
private:
|
||||
bool value_;
|
||||
@ -1048,7 +1014,6 @@ public:
|
||||
}
|
||||
return *this;
|
||||
}
|
||||
|
||||
protected:
|
||||
//use current value to do input operation
|
||||
bool set(const char *str) { UNUSED(str); return true; }
|
||||
@ -1068,18 +1033,15 @@ protected:
|
||||
{
|
||||
return sizeof(value_reboot_str_);
|
||||
}
|
||||
virtual const char *get_default_ptr() const = 0;
|
||||
const char *value_default_ptr() const override
|
||||
{
|
||||
return value_default_str_;
|
||||
}
|
||||
uint64_t value_default_len() const override
|
||||
{
|
||||
return sizeof(value_default_str_);
|
||||
return get_default_ptr();
|
||||
}
|
||||
|
||||
static const uint64_t VALUE_BUF_SIZE = 65536UL;
|
||||
char value_str_[VALUE_BUF_SIZE];
|
||||
char value_reboot_str_[VALUE_BUF_SIZE];
|
||||
char value_default_str_[VALUE_BUF_SIZE];
|
||||
|
||||
private:
|
||||
DISALLOW_COPY_AND_ASSIGN(ObConfigStringItem);
|
||||
@ -1212,18 +1174,17 @@ protected:
|
||||
{
|
||||
return sizeof(value_reboot_str_);
|
||||
}
|
||||
//if there is subclass from ObConfigLogArchiveOptionsItem, please implement it in
|
||||
//ob_parameter_macro.h
|
||||
//virtual const char *get_default_ptr() const = 0;
|
||||
const char *value_default_ptr() const override
|
||||
{
|
||||
return value_default_str_;
|
||||
}
|
||||
uint64_t value_default_len() const override
|
||||
{
|
||||
return sizeof(value_default_str_);
|
||||
return NULL; //get_default_ptr();
|
||||
}
|
||||
|
||||
static const uint64_t VALUE_BUF_SIZE = 2048UL;
|
||||
char value_str_[VALUE_BUF_SIZE];
|
||||
char value_reboot_str_[VALUE_BUF_SIZE];
|
||||
char value_default_str_[VALUE_BUF_SIZE];
|
||||
|
||||
private:
|
||||
DISALLOW_COPY_AND_ASSIGN(ObConfigLogArchiveOptionsItem);
|
||||
@ -1280,7 +1241,6 @@ public:
|
||||
return ret;
|
||||
}
|
||||
ObConfigVersionItem &operator = (int64_t value);
|
||||
|
||||
protected:
|
||||
virtual bool set(const char *str) override;
|
||||
virtual int64_t parse(const char *str, bool &valid) const override;
|
||||
@ -1300,18 +1260,15 @@ protected:
|
||||
{
|
||||
return sizeof(value_reboot_str_);
|
||||
}
|
||||
virtual const char *get_default_ptr() const = 0;
|
||||
const char *value_default_ptr() const override
|
||||
{
|
||||
return value_default_str_;
|
||||
}
|
||||
uint64_t value_default_len() const override
|
||||
{
|
||||
return sizeof(value_default_str_);
|
||||
return get_default_ptr();
|
||||
}
|
||||
|
||||
static const uint64_t VALUE_BUF_SIZE = 32UL; // 32 is enough for version like 4.2.0.0
|
||||
char value_str_[VALUE_BUF_SIZE];
|
||||
char value_reboot_str_[VALUE_BUF_SIZE];
|
||||
char value_default_str_[VALUE_BUF_SIZE];
|
||||
char value_dump_str_[VALUE_BUF_SIZE];
|
||||
bool dump_value_updated_;
|
||||
|
||||
@ -1404,21 +1361,18 @@ protected:
|
||||
{
|
||||
return sizeof(value_reboot_str_);
|
||||
}
|
||||
virtual const char *get_default_ptr() const = 0;
|
||||
const char *value_default_ptr() const override
|
||||
{
|
||||
return value_default_str_;
|
||||
}
|
||||
uint64_t value_default_len() const override
|
||||
{
|
||||
return sizeof(value_default_str_);
|
||||
return get_default_ptr();
|
||||
}
|
||||
|
||||
protected:
|
||||
static const uint64_t VALUE_BUF_SIZE = 65536UL;
|
||||
static const int64_t MAX_MODE_BYTES = 32;
|
||||
ObConfigParser *parser_;
|
||||
char value_str_[VALUE_BUF_SIZE];
|
||||
char value_reboot_str_[VALUE_BUF_SIZE];
|
||||
char value_default_str_[VALUE_BUF_SIZE];
|
||||
// max bits size: 8 * 32 = 256
|
||||
uint8_t value_[MAX_MODE_BYTES];
|
||||
private:
|
||||
|
@ -40,7 +40,7 @@
|
||||
common::ObConfigWorkAreaPolicyChecker, args))
|
||||
|
||||
// TODO: use parameter instead of config
|
||||
#define _DEF_PARAMETER_EASY(access_specifier, param, scope, name, args...) \
|
||||
#define _DEF_PARAMETER_EASY(access_specifier, param, scope, name, def, args...) \
|
||||
access_specifier: \
|
||||
class ObConfig ## param ## Item ## _ ## name \
|
||||
: public common::ObConfig ## param ## Item \
|
||||
@ -48,7 +48,7 @@ access_specifier:
|
||||
public: \
|
||||
ObConfig ## param ## Item ## _ ## name() \
|
||||
: common::ObConfig ## param ## Item(local_container(), scope, #name, \
|
||||
args) {} \
|
||||
def, args) {} \
|
||||
template <class T> \
|
||||
ObConfig ## param ## Item ## _ ## name& operator=(T value) \
|
||||
{ \
|
||||
@ -56,9 +56,15 @@ access_specifier:
|
||||
return *this; \
|
||||
} \
|
||||
TO_STRING_KV(K_(value_str)) \
|
||||
protected: \
|
||||
const char *value_default_str_ = def; \
|
||||
const char *get_default_ptr() const override \
|
||||
{ \
|
||||
return value_default_str_; \
|
||||
} \
|
||||
} name;
|
||||
|
||||
#define _DEF_PARAMETER_RANGE_EASY(access_specifier, param, scope, name, args...) \
|
||||
#define _DEF_PARAMETER_RANGE_EASY(access_specifier, param, scope, name, def, args...) \
|
||||
access_specifier: \
|
||||
class ObConfig ## param ## Item ## _ ## name \
|
||||
: public common::ObConfig ## param ## Item \
|
||||
@ -66,13 +72,19 @@ access_specifier:
|
||||
public: \
|
||||
ObConfig ## param ## Item ## _ ## name() \
|
||||
: common::ObConfig ## param ## Item(local_container(), scope, \
|
||||
#name, args) {} \
|
||||
#name, def, args) {} \
|
||||
template <class T> \
|
||||
ObConfig ## param ## Item ## _ ## name& operator=(T value) \
|
||||
{ \
|
||||
common::ObConfig ## param ## Item::operator=(value); \
|
||||
return *this; \
|
||||
} \
|
||||
protected: \
|
||||
const char *value_default_str_ = def; \
|
||||
const char *get_default_ptr() const override \
|
||||
{ \
|
||||
return value_default_str_; \
|
||||
} \
|
||||
} name;
|
||||
|
||||
#define _DEF_PARAMETER_CHECKER_EASY(access_specifier, param, scope, name, def, checker, args...) \
|
||||
@ -93,6 +105,12 @@ access_specifier:
|
||||
common::ObConfig ## param ## Item::operator=(value); \
|
||||
return *this; \
|
||||
} \
|
||||
protected: \
|
||||
const char *value_default_str_ = def; \
|
||||
const char *get_default_ptr() const override \
|
||||
{ \
|
||||
return value_default_str_; \
|
||||
} \
|
||||
} name;
|
||||
|
||||
#define _DEF_PARAMETER_PARSER_EASY(access_specifier, param, scope, name, def, parser, args...) \
|
||||
@ -105,6 +123,12 @@ access_specifier:
|
||||
: common::ObConfig ## param ## Item( \
|
||||
local_container(), scope, #name, def, \
|
||||
new (std::nothrow) parser(), args) {} \
|
||||
protected: \
|
||||
const char *value_default_str_ = def; \
|
||||
const char *get_default_ptr() const override \
|
||||
{ \
|
||||
return value_default_str_; \
|
||||
} \
|
||||
} name;
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
Reference in New Issue
Block a user