Classes | Public Member Functions | Private Member Functions | Private Attributes | Friends | List of all members
el::Configurations Class Reference

Thread-safe Configuration repository. More...

#include <easylogging++.h>

Inheritance diagram for el::Configurations:
Inheritance graph
[legend]

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::stringconfigurationFile (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...
 
Configurationget (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 >
RegistryWithPredoperator= (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)
 
AbstractRegistryoperator= (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::Mutexlock (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
 

Additional Inherited Members

- Public Types inherited from el::base::utils::RegistryWithPred< Configuration, Configuration::Predicate >
typedef RegistryWithPred< Configuration, Configuration::Predicate >::const_iterator const_iterator
 
typedef RegistryWithPred< Configuration, Configuration::Predicate >::iterator iterator
 
- Public Types inherited from el::base::utils::AbstractRegistry< Configuration, std::vector< Configuration * > >
typedef std::vector< Configuration * >::const_iterator const_iterator
 
typedef std::vector< Configuration * >::iterator iterator
 
- Protected Member Functions inherited from el::base::utils::RegistryWithPred< Configuration, Configuration::Predicate >
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...
 
virtual void registerNew (Configuration *ptr) ELPP_FINAL
 
virtual void unregister (Configuration *&ptr) ELPP_FINAL
 
virtual void unregisterAll (void) ELPP_FINAL
 Unregisters all the pointers from current repository. 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 1722 of file easylogging++.h.

Constructor & Destructor Documentation

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.

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()

Definition at line 288 of file easylogging++.cc.

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

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

Member Function Documentation

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

Clears repository so that all the configurations are unset.

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

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 1812 of file easylogging++.h.

Configuration* el::Configurations::get ( Level  level,
ConfigurationType  configurationType 
)
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.

Parameters
configurationTypeType 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.

Parameters
levelLevel to check
configurationTypeType 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.

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.

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.

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.

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.

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

Definition at line 353 of file easylogging++.cc.

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)

Definition at line 361 of file easylogging++.cc.

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

Sets configuration based-off an existing configurations.

Parameters
basePointer to existing configurations.

Definition at line 320 of file easylogging++.cc.

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 1799 of file easylogging++.h.

void el::Configurations::setGlobally ( ConfigurationType  configurationType,
const std::string value,
bool  includeGlobalLevel 
)
private

Sets configurations for all levels including Level::Global if includeGlobalLevel is true.

See also
Configurations::setGlobally(ConfigurationType configurationType, const std::string& value)

Definition at line 563 of file easylogging++.cc.

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

Definition at line 392 of file easylogging++.cc.

void el::Configurations::setToDefault ( void  )

Sets configurations to "factory based" configurations.

Definition at line 368 of file easylogging++.cc.

void el::Configurations::unsafeSet ( Level  level,
ConfigurationType  configurationType,
const std::string value 
)
private

Thread unsafe set.

Definition at line 551 of file easylogging++.cc.

void el::Configurations::unsafeSetGlobally ( ConfigurationType  configurationType,
const std::string value,
bool  includeGlobalLevel 
)
private

Sets configurations (Unsafely) for all levels including Level::Global if includeGlobalLevel is true.

See also
Configurations::setGlobally(ConfigurationType configurationType, const std::string& value)

Definition at line 575 of file easylogging++.cc.

void el::Configurations::unsafeSetIfNotExist ( Level  level,
ConfigurationType  configurationType,
const std::string value 
)
private

Unsafely sets configuration if does not already exist.

Definition at line 544 of file easylogging++.cc.

Friends And Related Function Documentation

friend class el::Loggers
friend

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

Member Data Documentation

std::string el::Configurations::m_configurationFile
private

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

bool el::Configurations::m_isFromFile
private

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


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


librealsense2
Author(s): Sergey Dorodnicov , Doron Hirshberg , Mark Horn , Reagan Lopez , Itay Carpis
autogenerated on Mon May 3 2021 02:50:36