senf::console::ConfigBundle Class Reference
[Accessing the Console/Config tree]

Combine multiple configuration sources. More...

#include <senf/Utils/Console/Config.hh>

List of all members.


Detailed Description

Combine multiple configuration sources.

A ConfigBundle combines several sources and parses them together, in the order they were added. Parse restrictions are applied uniformly to all sources.

// Add three configuration sources: A system configuration file, a user configuration file
// and command line options
senf::console::ConfigBundle conf;
conf.add( senf::console::FileConfig("/etc/some.conf") );
conf.add( senf::console::FileConfig("local.conf") );
conf.add( senf::console::OptionsConfig(senf::Daemon::instance().argc(),
                                       senf::Daemon::instance().argv()) );

conf.parse();

This bundle may also be passed to other code which may use restricted parsing to parse partial information from all configuration sources.

Definition at line 62 of file Config.hh.


Public Member Functions

template<class Source >
Source &  add (boost::intrusive_ptr< Source > source)
  Add configuration source.
void  parse ()
  Parse config bundle.
void  parse (DirectoryNode &restrict)
  Parse config bundle under restrict.
bool  complete () const
  true, if all nodes have been parsed
bool  parsed (GenericNode &node) const
  true. if node has been parsed
void  reset ()
  Reset node parse info state.
DirectoryNode root () const
void  chroot (DirectoryNode &node)

Structors and default members

  ConfigBundle ()
  root node is set to console::root()
  ConfigBundle (DirectoryNode &root)
  Set custom root node.

Constructor & Destructor Documentation

senf::console::ConfigBundle::
ConfigBundle ()

root node is set to console::root()

Definition at line 68 of file Config.cci.

senf::console::ConfigBundle::
ConfigBundle ( DirectoryNode root )

Set custom root node.

Definition at line 71 of file Config.cci.


Member Function Documentation

template<class Source >
Source & senf::console::ConfigBundle::
add ( boost::intrusive_ptr< Source >  source )

Add configuration source.

Definition at line 37 of file Config.cti.

void senf::console::ConfigBundle::
chroot ( DirectoryNode node )

Definition at line 98 of file Config.cci.

bool senf::console::ConfigBundle::
complete ()

true, if all nodes have been parsed

Definition at line 75 of file Config.cci.

void senf::console::ConfigBundle::
parse ( DirectoryNode restrict )

Parse config bundle under restrict.

Only nodes which are children of restrict are parsed.

Definition at line 121 of file Config.cc.

void senf::console::ConfigBundle::
parse ()

Parse config bundle.

All nodes already parsed are skipped

Definition at line 115 of file Config.cc.

bool senf::console::ConfigBundle::
parsed ( GenericNode node )

true. if node has been parsed

Definition at line 81 of file Config.cci.

void senf::console::ConfigBundle::
reset ()

Reset node parse info state.

After a call to reset(), all information about already parsed nodes is cleared. Calling parse() will parse the complete config bundle again.

Definition at line 87 of file Config.cci.

senf::console::DirectoryNode & senf::console::ConfigBundle::
root ()

Definition at line 92 of file Config.cci.


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