7#ifndef RIME_CONFIG_TYPES_H_
8#define RIME_CONFIG_TYPES_H_
44 bool GetBool(
bool* value)
const;
80 bool empty()
const override {
return seq_.empty(); }
89 using Map = map<string, an<ConfigItem>>;
174 using ConfigItemRef::operator=;
179 list_->SetAt(index_, item);
192 using ConfigItemRef::operator=;
197 map_->Set(key_, item);
#define RIME_DLL
Definition rime_api.h:33
std::shared_ptr< T > an
Definition common.h:60
an< T > New(Args &&... args)
Definition common.h:77
Definition config_data.h:17
ValueType type() const
Definition config_types.h:24
virtual bool empty() const
Definition config_types.h:26
ValueType
Definition config_types.h:19
@ kMap
Definition config_types.h:19
@ kList
Definition config_types.h:19
@ kNull
Definition config_types.h:19
@ kScalar
Definition config_types.h:19
ValueType type_
Definition config_types.h:31
ConfigItem(ValueType type)
Definition config_types.h:29
virtual ~ConfigItem()=default
bool SetBool(bool value)
Definition config_types.cc:88
RIME_DLL bool GetInt(int *value) const
Definition config_types.cc:49
bool GetDouble(double *value) const
Definition config_types.cc:70
bool SetInt(int value)
Definition config_types.cc:93
bool GetBool(bool *value) const
Definition config_types.cc:34
const string & str() const
Definition config_types.h:54
RIME_DLL bool GetString(string *value) const
Definition config_types.cc:81
bool SetString(const char *value)
Definition config_types.cc:103
ConfigValue()
Definition config_types.h:36
bool empty() const override
Definition config_types.h:56
bool SetDouble(double value)
Definition config_types.cc:98
string value_
Definition config_types.h:59
RIME_DLL an< ConfigValue > GetValueAt(size_t i) const
Definition config_types.cc:122
Iterator begin()
Definition config_types.cc:160
RIME_DLL bool Append(an< ConfigItem > element)
Definition config_types.cc:141
bool Insert(size_t i, an< ConfigItem > element)
Definition config_types.cc:133
Sequence seq_
Definition config_types.h:83
RIME_DLL size_t size() const
Definition config_types.cc:156
bool empty() const override
Definition config_types.h:80
RIME_DLL bool Clear()
Definition config_types.cc:151
vector< of< ConfigItem > > Sequence
Definition config_types.h:64
Iterator end()
Definition config_types.cc:164
ConfigList()
Definition config_types.h:67
Sequence::iterator Iterator
Definition config_types.h:65
RIME_DLL bool SetAt(size_t i, an< ConfigItem > element)
Definition config_types.cc:126
bool Resize(size_t size)
Definition config_types.cc:146
RIME_DLL an< ConfigItem > GetAt(size_t i) const
Definition config_types.cc:115
Iterator end()
Definition config_types.cc:200
Iterator begin()
Definition config_types.cc:196
map< string, an< ConfigItem > > Map
Definition config_types.h:89
Map::iterator Iterator
Definition config_types.h:90
bool Clear()
Definition config_types.cc:191
Map map_
Definition config_types.h:105
bool empty() const override
Definition config_types.h:102
RIME_DLL an< ConfigValue > GetValue(const string &key) const
Definition config_types.cc:182
ConfigMap()
Definition config_types.h:92
RIME_DLL bool HasKey(const string &key) const
Definition config_types.cc:170
RIME_DLL an< ConfigItem > Get(const string &key) const
Definition config_types.cc:174
RIME_DLL bool Set(const string &key, an< ConfigItem > element)
Definition config_types.cc:186
virtual ~ConfigItemRef()=default
ConfigItemRef & operator=(const T &x)
Definition config_types.h:133
RIME_DLL void Clear()
Definition config_types.cc:272
ConfigListEntryRef operator[](size_t index)
Definition config_types.h:206
virtual an< ConfigItem > GetItem() const =0
RIME_DLL bool HasKey(const string &key) const
Definition config_types.cc:289
an< ConfigItem > operator*() const
Definition config_types.h:131
RIME_DLL void set_modified()
Definition config_types.cc:298
RIME_DLL an< ConfigList > AsList()
Definition config_types.cc:258
RIME_DLL bool Append(an< ConfigItem > item)
Definition config_types.cc:276
RIME_DLL bool IsNull() const
Definition config_types.cc:206
double ToDouble() const
Definition config_types.cc:242
RIME_DLL an< ConfigMap > AsMap()
Definition config_types.cc:265
bool IsMap() const
Definition config_types.cc:221
bool IsValue() const
Definition config_types.cc:211
RIME_DLL string ToString() const
Definition config_types.cc:250
RIME_DLL bool modified() const
Definition config_types.cc:294
RIME_DLL size_t size() const
Definition config_types.cc:284
ConfigItemRef(ConfigData *data)
Definition config_types.h:128
ConfigData * data_
Definition config_types.h:167
RIME_DLL bool IsList() const
Definition config_types.cc:216
virtual void SetItem(an< ConfigItem > item)=0
RIME_DLL int ToInt() const
Definition config_types.cc:234
RIME_DLL bool ToBool() const
Definition config_types.cc:226
Definition config_types.h:170
ConfigListEntryRef(ConfigData *data, an< ConfigList > list, size_t index)
Definition config_types.h:172
an< ConfigItem > GetItem() const
Definition config_types.h:177
void SetItem(an< ConfigItem > item)
Definition config_types.h:178
Definition config_types.h:188
ConfigMapEntryRef(ConfigData *data, an< ConfigMap > map, const string &key)
Definition config_types.h:190
an< ConfigItem > GetItem() const
Definition config_types.h:195
void SetItem(an< ConfigItem > item)
Definition config_types.h:196