|
SWC-DB
v0.5.12 C++ documentations
SWC-DB© (Super Wide Column Database) - High Performance Scalable Database (https://github.com/kashirin-alex/swc-db)
|
Go to the documentation of this file.
7 #ifndef swcdb_core_config_Properties_h
8 #define swcdb_core_config_Properties_h
17 namespace SWC {
namespace Config {
21 typedef std::map<std::string, Property::Value::Ptr>
Map;
22 typedef std::map<std::string, std::string>
AliasMap;
41 void reset() noexcept;
44 bool only_guarded=false);
46 void load(const std::
string& fname,
49 bool allow_unregistered=false,
bool only_guarded=false);
51 void reload(const std::
string& fname,
55 void alias(const
char* primary, const
char* secondary);
57 void set(const
char* name, Property::Value::Ptr p);
63 std::
string to_string(const
char* name) const;
67 void remove(const
char* name);
69 Property::Value::Ptr
get_ptr(const
char* name,
bool null_ok=false) const;
73 T*
get(const
char* name)
const {
74 return Property::Value::get_pointer<T>(
get_ptr(name));
77 std::string
get_str(
const char* name)
const {
78 return get<Property::Value_string>(name)->get();
81 std::string
get_str(
const char* name,
const std::string& v)
const {
86 return get<Property::Value_strings>(name)->get();
90 return get<Property::Value_bool>(name)->get();
93 bool get_bool(
const char* name,
bool v)
const {
98 return get<Property::Value_bool_g>(name)->get();
102 return get<Property::Value_enum>(name)->get();
106 return get<Property::Value_enum_g>(name)->get();
110 return get<Property::Value_uint8>(name)->get();
114 return get<Property::Value_uint16>(name)->get();
117 uint16_t
get_i16(
const char* name, uint16_t v)
const {
122 return get<Property::Value_int32>(name)->get();
125 int32_t
get_i32(
const char* name, int32_t v)
const {
130 return get<Property::Value_int64>(name)->get();
134 void print(std::ostream& out,
bool include_default =
false)
const;
146 #ifdef SWC_IMPL_SOURCE
150 #endif // swcdb_core_config_Properties_h
void reload(const std::string &fname, const Config::ParserConfig &filedesc, const Config::ParserConfig &cmddesc)
Strings get_strs(const char *name) const
void remove(const char *name)
uint8_t get_i8(const char *name) const
int32_t get_genum(const char *name) const
int64_t get_i64(const char *name) const
int32_t get_i32(const char *name) const
bool get_gbool(const char *name) const
void print(std::ostream &out, bool include_default=false) const
SWC_SHOULD_NOT_INLINE T * get(const char *name) const
bool defaulted(const char *name) const
uint16_t get_i16(const char *name) const
void get_names(Strings &names) const
Properties & operator=(const Properties &)=delete
The SWC-DB C++ namespace 'SWC'.
void set(const char *name, Property::Value::Ptr p)
Properties(Properties &&)=delete
bool SWC_PURE_FUNC has(const char *name) const noexcept
SWC_CAN_INLINE ~Properties() noexcept
std::map< std::string, Property::Value::Ptr > Map
void load(const std::string &fname, const Config::ParserConfig &filedesc, const Config::ParserConfig &cmddesc, bool allow_unregistered=false, bool only_guarded=false)
std::string get_str(const char *name, const std::string &v) const
std::map< std::string, std::string > AliasMap
uint16_t get_i16(const char *name, uint16_t v) const
Properties & operator=(Properties &&)=delete
void load_from(const Config::Parser::Options &opts, bool only_guarded=false)
std::string get_str(const char *name) const
std::string to_string(const char *name) const
Property::Value::Ptr get_ptr(const char *name, bool null_ok=false) const
int32_t get_i32(const char *name, int32_t v) const
bool get_bool(const char *name, bool v) const
int32_t get_enum(const char *name) const
Properties(const Properties &)=delete
bool get_bool(const char *name) const
void alias(const char *primary, const char *secondary)
SWC_CAN_INLINE Properties() noexcept