7#ifndef RIME_CONFIG_COMPONENT_H_
8#define RIME_CONFIG_COMPONENT_H_
62 using ConfigItemRef::operator=;
105 map<string, weak<ConfigData>> cache_;
108template <
class Loader,
class ResourceProv
ider = ConfigResourceProv
ider>
112 ResourceProvider::kDefaultResourceType)
114 ResourceProvider::CreateResourceResolver(resource_type)) {}
117 ResourceProvider::kDefaultResourceType)) {
131 const string& config_id);
135 bool auto_save_ =
false;
143 const string& config_id);
148 vector<the<ConfigCompilerPlugin>> plugins_;
#define RIME_DLL
Definition rime_api.h:33
std::shared_ptr< T > an
Definition common.h:60
std::unique_ptr< T > the
Definition common.h:58
Definition component.h:21
Definition config_compiler.h:15
Definition config_compiler.h:41
Definition config_component.h:21
RIME_DLL bool GetString(const string &path, string *value)
Definition config_component.cc:84
RIME_DLL bool GetBool(const string &path, bool *value)
Definition config_component.cc:66
RIME_DLL an< ConfigList > GetList(const string &path)
Definition config_component.cc:106
RIME_DLL bool IsMap(const string &path)
Definition config_component.cc:61
RIME_DLL bool SetItem(const string &path, an< ConfigItem > item)
Definition config_component.cc:136
RIME_DLL bool SetString(const string &path, const char *value)
Definition config_component.cc:128
bool Save()
Definition config_component.cc:26
bool IsValue(const string &path)
Definition config_component.cc:51
RIME_DLL bool SaveToFile(const path &file_path)
Definition config_component.cc:42
RIME_DLL bool LoadFromFile(const path &file_path)
Definition config_component.cc:38
an< ConfigData > data_
Definition config_component.h:68
bool SaveToStream(std::ostream &stream)
Definition config_component.cc:34
RIME_DLL bool IsList(const string &path)
Definition config_component.cc:56
bool SetBool(const string &path, bool value)
Definition config_component.cc:116
RIME_DLL size_t GetListSize(const string &path)
Definition config_component.cc:90
RIME_DLL bool SetInt(const string &path, int value)
Definition config_component.cc:120
RIME_DLL an< ConfigMap > GetMap(const string &path)
Definition config_component.cc:111
RIME_DLL Config()
Definition config_component.cc:18
bool LoadFromStream(std::istream &stream)
Definition config_component.cc:30
an< ConfigItem > GetItem(const string &path)
Definition config_component.cc:96
RIME_DLL bool GetDouble(const string &path, double *value)
Definition config_component.cc:78
bool SetDouble(const string &path, double value)
Definition config_component.cc:124
an< ConfigValue > GetValue(const string &path)
Definition config_component.cc:101
RIME_DLL bool GetInt(const string &path, int *value)
Definition config_component.cc:72
RIME_DLL bool IsNull(const string &path)
Definition config_component.cc:46
Definition config_component.h:75
static RIME_DLL ResourceResolver * CreateResourceResolver(const ResourceType &resource_type)
Definition config_component.cc:152
static RIME_DLL const ResourceType kDefaultResourceType
Definition config_component.h:76
Definition config_component.h:81
static RIME_DLL const ResourceType kDefaultResourceType
Definition config_component.h:82
static RIME_DLL ResourceResolver * CreateResourceResolver(const ResourceType &resource_type)
Definition config_component.cc:160
Definition config_component.h:87
static RIME_DLL const ResourceType kDefaultResourceType
Definition config_component.h:88
static RIME_DLL ResourceResolver * CreateResourceResolver(const ResourceType &resource_type)
Definition config_component.cc:168
virtual an< ConfigData > LoadConfig(const string &config_id)=0
the< ResourceResolver > resource_resolver_
Definition config_component.h:101
RIME_DLL Config * Create(const string &file_name)
Definition config_component.cc:178
RIME_DLL ConfigComponentBase(ResourceResolver *resource_resolver)
Definition config_component.cc:173
ConfigComponent(function< void(Loader *loader)> setup)
Definition config_component.h:115
ConfigComponent(const ResourceType &resource_type=ResourceProvider::kDefaultResourceType)
Definition config_component.h:111
Definition config_component.h:128
RIME_DLL an< ConfigData > LoadConfig(ResourceResolver *resource_resolver, const string &config_id)
Definition config_component.cc:195
void set_auto_save(bool auto_save)
Definition config_component.h:132
void InstallPlugin(ConfigCompilerPlugin *plugin)
Definition config_component.cc:207
RIME_DLL an< ConfigData > LoadConfig(ResourceResolver *resource_resolver, const string &config_id)
Definition config_component.cc:244
RIME_DLL ConfigBuilder()
Definition config_component.cc:203
bool ApplyPlugins(ConfigCompiler *compiler, an< ConfigResource > resource)
Definition config_data.h:17
ConfigItemRef(ConfigData *data)
Definition config_types.h:128