#include <plugins.hpp>
Abstract class that represents a plug in for class Configuration to provide configuration data from specific configuration data source.
See documentation of namespace aworx::lib::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.
Inner Classes | |
class | Iterator |
Public Fields | |
XTernalizer * | StringConverter |
Public Methods | |
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 Fields | |
XTernalizer | defaultStringConverter |
Protected Methods | |
ConfigurationPlugin () | |
|
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 Environment, InMemoryPlugin, and CLIArgs.
|
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 Environment, InMemoryPlugin, CLIArgs, and IniFile.
|
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 InMemoryPlugin, and IniFile.
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. Definition at line 212 of file config/plugins.hpp.
|
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.