Abstract class that represents a plug in for class Configuration to provide configuration data from specific configuration data source.
See documentation of namespace alib::config for more information on ALib external configuration variables.
The plug-in also may have the ability to write data. The default implementation for writing configuration data returns constant false, indicating that this plug-in never writes anything (e.g. command line parameter plug-in, environment variable plug-in).
Category and Variable names are character case insensitive for the plug-ins predefined with ALib . It is recommended to ignore character case in custom specializations of this class as well.
Definition at line 124 of file config/plugins.hpp.
#include <plugins.hpp>
Inner Type Index: | |
class | Iterator |
Public Field Index: | |
XTernalizer * | StringConverter |
Public Method Index: | |
virtual | ~ConfigurationPlugin () |
virtual Iterator * | GetIterator (const String §ionName) |
virtual ALIB_API bool | Load (Variable &variable, bool searchOnly=false)=0 |
virtual String | Name () const =0 |
virtual bool | Store (Variable &variable) |
virtual bool | Store (Variable &variable, const String &externalizedValue) |
|
protected |
The default external string converter.
Definition at line 131 of file config/plugins.hpp.
XTernalizer* StringConverter |
The external string converter. By default this points to field defaultStringConverter.
Definition at line 140 of file config/plugins.hpp.
|
inlineprotected |
Constructor which is protected, as this is an abstract class.
Definition at line 149 of file config/plugins.hpp.
|
inlinevirtual |
Creates an iterator object to return all variables within a section. The iterator object returned, needs to be deleted by the caller.
If a plug-in can not perform iteration, it will return nullptr
. This is for example true for plug-in class Environment .
sectionName | The name of the section to iterate. |
nullptr
if the plug-in does not support section iteration. Reimplemented in InMemoryPlugin, and CLIArgs.
Definition at line 262 of file config/plugins.hpp.
Abstract method that has to be overwritten by descendants. Searches and by default retrieves the value of a configuration variable. If searchOnly is true
, then the variable value is not read.
variable | The variable to retrieve. |
searchOnly | If true , the variable must not be set. Defaults to false . |
true
if variable was found within this configuration source, false
if not. Implemented in IniFile, InMemoryPlugin, CLIArgs, and Environment.
|
pure virtual |
Abstract method to return a plug-in name. The name may be used in human readable output, e.g. log-files or exception messages to tell a user for example, which plug-in loaded a variable containing a syntax error.
Implemented in IniFile, InMemoryPlugin, CLIArgs, and Environment.
|
inlinevirtual |
Writes a variable to the configuration. This default implementation just returns false
. If this method is not overwritten in descendants, those descendants are not designed to write data.
variable | The variable to store. |
true
if the variable was written, false
if not which typically indicates that this plug-in is not able to write values. Reimplemented in IniFile, and InMemoryPlugin.
Definition at line 195 of file config/plugins.hpp.
Convenience method that parses the values from the given string using field StringConverter and then invokes Store.
variable | The variable to store. |
externalizedValue | The value to parse into the variable before storing |
true
if the variable was written, false
if not which typically indicates that this plug-in is not able to write values. Reimplemented in InMemoryPlugin.
Definition at line 212 of file config/plugins.hpp.