Thread-safe Configuration repository. More...
#include <easylogging++.h>
Classes | |
class | Parser |
Parser used internally to parse configurations from file or text. More... | |
Public Member Functions | |
void | clear (void) |
Clears repository so that all the configurations are unset. More... | |
const std::string & | configurationFile (void) const |
Gets configuration file used in parsing this configurations. More... | |
Configurations (void) | |
Default constructor with empty repository. More... | |
Configurations (const std::string &configurationFile, bool useDefaultsForRemaining=true, Configurations *base=nullptr) | |
Constructor used to set configurations using configuration file. More... | |
Configuration * | get (Level level, ConfigurationType configurationType) |
bool | hasConfiguration (ConfigurationType configurationType) |
Determines whether or not specified configuration type exists in the repository. More... | |
bool | hasConfiguration (Level level, ConfigurationType configurationType) |
Determines whether or not specified configuration type exists for specified level. More... | |
bool | parseFromFile (const std::string &configurationFile, Configurations *base=nullptr) |
Parses configuration from file. More... | |
bool | parseFromText (const std::string &configurationsString, Configurations *base=nullptr) |
Parse configurations from configuration string. More... | |
void | set (Level level, ConfigurationType configurationType, const std::string &value) |
Sets value of configuration for specified level. More... | |
void | set (Configuration *conf) |
Sets single configuration based on other single configuration. More... | |
void | setFromBase (Configurations *base) |
Sets configuration based-off an existing configurations. More... | |
void | setGlobally (ConfigurationType configurationType, const std::string &value) |
Sets configuration for all levels. More... | |
void | setRemainingToDefault (void) |
Lets you set the remaining configurations to default. More... | |
void | setToDefault (void) |
Sets configurations to "factory based" configurations. More... | |
virtual | ~Configurations (void) |
Public Member Functions inherited from el::base::utils::RegistryWithPred< Configuration, Configuration::Predicate > | |
RegistryWithPred & | operator= (const RegistryWithPred &sr) |
Assignment operator that unregisters all the existing registeries and deeply copies each of repo element. More... | |
RegistryWithPred (void) | |
RegistryWithPred (const RegistryWithPred &sr) | |
Copy constructor that is useful for base classes. Try to avoid this constructor, use move constructor. More... | |
virtual | ~RegistryWithPred (void) |
Public Member Functions inherited from el::base::utils::AbstractRegistry< Configuration, std::vector< Configuration * > > | |
AbstractRegistry (void) | |
Default constructor. More... | |
AbstractRegistry (AbstractRegistry &&sr) | |
Move constructor that is useful for base classes. More... | |
virtual iterator | begin (void) ELPP_FINAL |
virtual const_iterator | cbegin (void) const ELPP_FINAL |
virtual const_iterator | cend (void) const ELPP_FINAL |
virtual bool | empty (void) const ELPP_FINAL |
virtual iterator | end (void) ELPP_FINAL |
virtual std::vector< Configuration * > & | list (void) ELPP_FINAL |
Returns underlying container by reference. More... | |
virtual const std::vector< Configuration * > & | list (void) const ELPP_FINAL |
Returns underlying container by constant reference. More... | |
bool | operator!= (const AbstractRegistry< Configuration, std::vector< Configuration * > > &other) |
AbstractRegistry & | operator= (AbstractRegistry &&sr) |
Assignment move operator. More... | |
bool | operator== (const AbstractRegistry< Configuration, std::vector< Configuration * > > &other) |
virtual std::size_t | size (void) const ELPP_FINAL |
virtual | ~AbstractRegistry (void) |
Public Member Functions inherited from el::base::threading::ThreadSafe | |
virtual void | acquireLock (void) ELPP_FINAL |
virtual base::threading::Mutex & | lock (void) ELPP_FINAL |
virtual void | releaseLock (void) ELPP_FINAL |
Private Member Functions | |
void | setGlobally (ConfigurationType configurationType, const std::string &value, bool includeGlobalLevel) |
Sets configurations for all levels including Level::Global if includeGlobalLevel is true. More... | |
void | unsafeSet (Level level, ConfigurationType configurationType, const std::string &value) |
Thread unsafe set. More... | |
void | unsafeSetGlobally (ConfigurationType configurationType, const std::string &value, bool includeGlobalLevel) |
Sets configurations (Unsafely) for all levels including Level::Global if includeGlobalLevel is true. More... | |
void | unsafeSetIfNotExist (Level level, ConfigurationType configurationType, const std::string &value) |
Unsafely sets configuration if does not already exist. More... | |
Private Attributes | |
std::string | m_configurationFile |
bool | m_isFromFile |
Friends | |
class | el::Loggers |
Thread-safe Configuration repository.
This repository represents configurations for all the levels and configuration type mapped to a value.
Definition at line 1722 of file easylogging++.h.
el::Configurations::Configurations | ( | void | ) |
Default constructor with empty repository.
Definition at line 283 of file easylogging++.cc.
el::Configurations::Configurations | ( | const std::string & | configurationFile, |
bool | useDefaultsForRemaining = true , |
||
Configurations * | base = nullptr |
||
) |
Constructor used to set configurations using configuration file.
configurationFile | Full path to configuration file |
useDefaultsForRemaining | Lets you set the remaining configurations to default. |
base | If provided, this configuration will be based off existing repository that this argument is pointing to. |
Definition at line 288 of file easylogging++.cc.
|
inlinevirtual |
Definition at line 1736 of file easylogging++.h.
Clears repository so that all the configurations are unset.
Definition at line 1804 of file easylogging++.h.
|
inline |
Gets configuration file used in parsing this configurations.
If this repository was set manually or by text this returns empty string.
Definition at line 1812 of file easylogging++.h.
|
inline |
Definition at line 1790 of file easylogging++.h.
bool el::Configurations::hasConfiguration | ( | ConfigurationType | configurationType | ) |
Determines whether or not specified configuration type exists in the repository.
Returns as soon as first level is found.
configurationType | Type of configuration to check existence for. |
Definition at line 330 of file easylogging++.cc.
bool el::Configurations::hasConfiguration | ( | Level | level, |
ConfigurationType | configurationType | ||
) |
Determines whether or not specified configuration type exists for specified level.
level | Level to check |
configurationType | Type of configuration to check existence for. |
Definition at line 342 of file easylogging++.cc.
bool el::Configurations::parseFromFile | ( | const std::string & | configurationFile, |
Configurations * | base = nullptr |
||
) |
Parses configuration from file.
configurationFile | Full path to configuration file |
base | Configurations to base new configuration repository off. This value is used when you want to use existing Configurations to base all the values and then set rest of configuration via configuration file. |
Definition at line 298 of file easylogging++.cc.
bool el::Configurations::parseFromText | ( | const std::string & | configurationsString, |
Configurations * | base = nullptr |
||
) |
Parse configurations from configuration string.
This configuration string has same syntax as configuration file contents. Make sure all the necessary new line characters are provided.
base | Configurations to base new configuration repository off. This value is used when you want to use existing Configurations to base all the values and then set rest of configuration via configuration text. |
Definition at line 312 of file easylogging++.cc.
void el::Configurations::set | ( | Level | level, |
ConfigurationType | configurationType, | ||
const std::string & | value | ||
) |
Sets value of configuration for specified level.
Any existing configuration for specified level will be replaced. Also note that configuration types ConfigurationType::SubsecondPrecision and ConfigurationType::PerformanceTracking will be ignored if not set for Level::Global because these configurations are not dependant on level.
level | Level to set configuration for (el::Level). |
configurationType | Type of configuration (el::ConfigurationType) |
value | A string based value. Regardless of what the data type of configuration is, it will always be string from users' point of view. This is then parsed later to be used internally. |
Definition at line 353 of file easylogging++.cc.
void el::Configurations::set | ( | Configuration * | conf | ) |
Sets single configuration based on other single configuration.
Definition at line 361 of file easylogging++.cc.
void el::Configurations::setFromBase | ( | Configurations * | base | ) |
Sets configuration based-off an existing configurations.
base | Pointer to existing configurations. |
Definition at line 320 of file easylogging++.cc.
|
inline |
Sets configuration for all levels.
configurationType | Type of configuration |
value | String based value |
Definition at line 1799 of file easylogging++.h.
|
private |
Sets configurations for all levels including Level::Global if includeGlobalLevel is true.
Definition at line 563 of file easylogging++.cc.
Lets you set the remaining configurations to default.
By remaining, it means that the level/type a configuration does not exist for. This function is useful when you want to minimize chances of failures, e.g, if you have a configuration file that sets configuration for all the configurations except for Enabled or not, we use this so that ENABLED is set to default i.e, true. If you dont do this explicitly (either by calling this function or by using second param in Constructor and try to access a value, an error is thrown
Definition at line 392 of file easylogging++.cc.
Sets configurations to "factory based" configurations.
Definition at line 368 of file easylogging++.cc.
|
private |
Thread unsafe set.
Definition at line 551 of file easylogging++.cc.
|
private |
Sets configurations (Unsafely) for all levels including Level::Global if includeGlobalLevel is true.
Definition at line 575 of file easylogging++.cc.
|
private |
Unsafely sets configuration if does not already exist.
Definition at line 544 of file easylogging++.cc.
|
friend |
Definition at line 1870 of file easylogging++.h.
|
private |
Definition at line 1868 of file easylogging++.h.
|
private |
Definition at line 1869 of file easylogging++.h.