Electroneum
el::Configurations Class Reference

Thread-safe Configuration repository. More...

#include <easylogging++.h>

Inheritance diagram for el::Configurations:
Collaboration diagram for el::Configurations:

Classes

class  Parser
 Parser used internally to parse configurations from file or text. More...
 

Public Member Functions

 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...
 
virtual ~Configurations (void)
 
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 setFromBase (Configurations *base)
 Sets configuration based-off an existing configurations. More...
 
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...
 
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...
 
Configurationget (Level level, ConfigurationType configurationType)
 
void setGlobally (ConfigurationType configurationType, const std::string &value)
 Sets configuration for all levels. More...
 
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...
 
void setToDefault (void)
 Sets configurations to "factory based" configurations. More...
 
void setRemainingToDefault (void)
 Lets you set the remaining configurations to default. More...
 
- Public Member Functions inherited from el::base::utils::RegistryWithPred< Configuration, Configuration::Predicate >
 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)
 
RegistryWithPredoperator= (const RegistryWithPred &sr)
 Assignment operator that unregisters all the existing registeries and deeply copies each of repo element. More...
 
- 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...
 
bool operator== (const AbstractRegistry< Configuration, std::vector< Configuration * > > &other)
 
bool operator!= (const AbstractRegistry< Configuration, std::vector< Configuration * > > &other)
 
AbstractRegistryoperator= (AbstractRegistry &&sr)
 Assignment move operator. More...
 
virtual ~AbstractRegistry (void)
 
virtual iterator begin (void) ELPP_FINAL
 
virtual iterator end (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 std::size_t size (void) const 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...
 
- Public Member Functions inherited from el::base::threading::ThreadSafe
virtual void acquireLock (void) ELPP_FINAL
 
virtual void releaseLock (void) ELPP_FINAL
 
virtual base::threading::Mutexlock (void) ELPP_FINAL
 

Friends

class el::Loggers
 

Additional Inherited Members

- Public Types inherited from el::base::utils::RegistryWithPred< Configuration, Configuration::Predicate >
typedef RegistryWithPred< Configuration, Configuration::Predicate >::iterator iterator
 
typedef RegistryWithPred< Configuration, Configuration::Predicate >::const_iterator const_iterator
 
- Public Types inherited from el::base::utils::AbstractRegistry< Configuration, std::vector< Configuration *> >
typedef std::vector< Configuration * > ::iterator iterator
 
typedef std::vector< Configuration * > ::const_iterator const_iterator
 
- Protected Member Functions inherited from el::base::utils::RegistryWithPred< Configuration, Configuration::Predicate >
virtual void unregisterAll (void) ELPP_FINAL
 Unregisters all the pointers from current repository. More...
 
virtual void unregister (Configuration *&ptr) ELPP_FINAL
 
virtual void registerNew (Configuration *ptr) ELPP_FINAL
 
Configurationget (const T &arg1, const T2 arg2)
 Gets pointer from repository with speicifed arguments. Arguments are passed to predicate in order to validate pointer. More...
 
- Protected Member Functions inherited from el::base::utils::AbstractRegistry< Configuration, std::vector< Configuration *> >
virtual void deepCopy (const AbstractRegistry< Configuration, std::vector< Configuration * > > &)=0
 
void reinitDeepCopy (const AbstractRegistry< Configuration, std::vector< Configuration * > > &sr)
 
- Protected Member Functions inherited from el::base::threading::ThreadSafe
 ThreadSafe (void)
 
virtual ~ThreadSafe (void)
 

Detailed Description

Thread-safe Configuration repository.

This repository represents configurations for all the levels and configuration type mapped to a value.

Definition at line 1752 of file easylogging++.h.

Constructor & Destructor Documentation

◆ Configurations() [1/2]

el::Configurations::Configurations ( void  )

Default constructor with empty repository.

◆ Configurations() [2/2]

el::Configurations::Configurations ( const std::string &  configurationFile,
bool  useDefaultsForRemaining = true,
Configurations base = nullptr 
)

Constructor used to set configurations using configuration file.

Parameters
configurationFileFull path to configuration file
useDefaultsForRemainingLets you set the remaining configurations to default.
baseIf provided, this configuration will be based off existing repository that this argument is pointing to.
See also
parseFromFile(const std::string&, Configurations* base)
setRemainingToDefault()

◆ ~Configurations()

virtual el::Configurations::~Configurations ( void  )
inlinevirtual

Definition at line 1766 of file easylogging++.h.

1766  {
1767  }

Member Function Documentation

◆ clear()

void el::Configurations::clear ( void  )
inline

Clears repository so that all the configurations are unset.

Definition at line 1834 of file easylogging++.h.

1834  {
1835  base::threading::ScopedLock scopedLock(lock());
1836  unregisterAll();
1837  }
base::threading::internal::ScopedLock< base::threading::Mutex > ScopedLock
virtual base::threading::Mutex & lock(void) ELPP_FINAL
Here is the call graph for this function:

◆ configurationFile()

const std::string& el::Configurations::configurationFile ( void  ) const
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 1842 of file easylogging++.h.

1842  {
1843  return m_configurationFile;
1844  }

◆ get()

Configuration* el::Configurations::get ( Level  level,
ConfigurationType  configurationType 
)
inline

Definition at line 1820 of file easylogging++.h.

1820  {
1821  base::threading::ScopedLock scopedLock(lock());
1822  return RegistryWithPred<Configuration, Configuration::Predicate>::get(level, configurationType);
1823  }
base::threading::internal::ScopedLock< base::threading::Mutex > ScopedLock
virtual base::threading::Mutex & lock(void) ELPP_FINAL
void get(std::istream &input, bool &res)
Definition: io.h:62
Here is the call graph for this function:

◆ hasConfiguration() [1/2]

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.

Parameters
configurationTypeType of configuration to check existence for.

◆ hasConfiguration() [2/2]

bool el::Configurations::hasConfiguration ( Level  level,
ConfigurationType  configurationType 
)

Determines whether or not specified configuration type exists for specified level.

Parameters
levelLevel to check
configurationTypeType of configuration to check existence for.

◆ parseFromFile()

bool el::Configurations::parseFromFile ( const std::string &  configurationFile,
Configurations base = nullptr 
)

Parses configuration from file.

Parameters
configurationFileFull path to configuration file
baseConfigurations 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.
Returns
True if successfully parsed, false otherwise. You may define 'ELPP_DEBUG_ASSERT_FAILURE' to make sure you do not proceed without successful parse.

◆ parseFromText()

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.

Parameters
baseConfigurations 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.
Returns
True if successfully parsed, false otherwise. You may define 'ELPP_DEBUG_ASSERT_FAILURE' to make sure you do not proceed without successful parse.

◆ set() [1/2]

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.

Parameters
levelLevel to set configuration for (el::Level).
configurationTypeType of configuration (el::ConfigurationType)
valueA 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.
See also
Configuration::setValue(const std::string& value)
el::Level
el::ConfigurationType

◆ set() [2/2]

void el::Configurations::set ( Configuration conf)

Sets single configuration based on other single configuration.

See also
set(Level level, ConfigurationType configurationType, const std::string& value)

◆ setFromBase()

void el::Configurations::setFromBase ( Configurations base)

Sets configuration based-off an existing configurations.

Parameters
basePointer to existing configurations.
Here is the caller graph for this function:

◆ setGlobally()

void el::Configurations::setGlobally ( ConfigurationType  configurationType,
const std::string &  value 
)
inline

Sets configuration for all levels.

Parameters
configurationTypeType of configuration
valueString based value
See also
Configurations::set(Level level, ConfigurationType configurationType, const std::string& value)

Definition at line 1829 of file easylogging++.h.

1829  {
1830  setGlobally(configurationType, value, false);
1831  }
void setGlobally(ConfigurationType configurationType, const std::string &value)
Sets configuration for all levels.
const GenericPointer< typename T::ValueType > T2 value
Definition: pointer.h:1225
Here is the caller graph for this function:

◆ setRemainingToDefault()

void el::Configurations::setRemainingToDefault ( void  )

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

◆ setToDefault()

void el::Configurations::setToDefault ( void  )

Sets configurations to "factory based" configurations.

Friends And Related Function Documentation

◆ el::Loggers

friend class el::Loggers
friend

Definition at line 1900 of file easylogging++.h.


The documentation for this class was generated from the following file: