nfd::ConfigFile Class Reference

configuration file parsing utility More...

#include <core/config-file.hpp>

+ Inheritance diagram for nfd::ConfigFile:
+ Collaboration diagram for nfd::ConfigFile:

Classes

class  Error
 

Public Member Functions

 ConfigFile (UnknownConfigSectionHandler unknownSectionCallback=throwErrorOnUnknownSection)
 
void addSectionHandler (const std::string &sectionName, ConfigSectionHandler subscriber)
 setup notification of configuration file sections More...
 
void parse (const std::string &filename, bool isDryRun)
 
void parse (const std::string &input, bool isDryRun, const std::string &filename)
 
void parse (std::istream &input, bool isDryRun, const std::string &filename)
 
void parse (const ConfigSection &config, bool isDryRun, const std::string &filename)
 

Static Public Member Functions

static void ignoreUnknownSection (const std::string &filename, const std::string &sectionName, const ConfigSection &section, bool isDryRun)
 
template<typename T >
static T parseNumber (const ConfigSection &node, const std::string &key, const std::string &sectionName)
 parse a numeric (integral or floating point) config option More...
 
template<typename T >
static T parseNumber (const ConfigSection::value_type &option, const std::string &sectionName)
 
static bool parseYesNo (const ConfigSection &node, const std::string &key, const std::string &sectionName)
 parse a config option that can be either "yes" or "no" More...
 
static bool parseYesNo (const ConfigSection::value_type &option, const std::string &sectionName)
 
static void throwErrorOnUnknownSection (const std::string &filename, const std::string &sectionName, const ConfigSection &section, bool isDryRun)
 

Detailed Description

configuration file parsing utility

Definition at line 57 of file config-file.hpp.

Constructor & Destructor Documentation

nfd::ConfigFile::ConfigFile ( UnknownConfigSectionHandler  unknownSectionCallback = throwErrorOnUnknownSection)
explicit

Definition at line 34 of file config-file.cpp.

Member Function Documentation

void nfd::ConfigFile::addSectionHandler ( const std::string &  sectionName,
ConfigSectionHandler  subscriber 
)

setup notification of configuration file sections

Definition at line 76 of file config-file.cpp.

void nfd::ConfigFile::ignoreUnknownSection ( const std::string &  filename,
const std::string &  sectionName,
const ConfigSection section,
bool  isDryRun 
)
static

Definition at line 50 of file config-file.cpp.

void nfd::ConfigFile::parse ( const std::string &  filename,
bool  isDryRun 
)
Parameters
filenamefile to parse
isDryRuntrue if performing a dry run of configuration, false otherwise
Exceptions
ConfigFile::Errorif file not found
ConfigFile::Errorif parse error

Definition at line 83 of file config-file.cpp.

void nfd::ConfigFile::parse ( const std::string &  input,
bool  isDryRun,
const std::string &  filename 
)
Parameters
inputconfiguration (as a string) to parse
isDryRuntrue if performing a dry run of configuration, false otherwise
filenamelogical filename of the config file, can appear in error messages
Exceptions
ConfigFile::Errorif file not found
ConfigFile::Errorif parse error

Definition at line 94 of file config-file.cpp.

void nfd::ConfigFile::parse ( std::istream &  input,
bool  isDryRun,
const std::string &  filename 
)
Parameters
inputstream to parse
isDryRuntrue if performing a dry run of configuration, false otherwise
filenamelogical filename of the config file, can appear in error messages
Exceptions
ConfigFile::Errorif parse error

Definition at line 101 of file config-file.cpp.

void nfd::ConfigFile::parse ( const ConfigSection config,
bool  isDryRun,
const std::string &  filename 
)
Parameters
configConfigSection that needs to be processed
isDryRuntrue if performing a dry run of configuration, false otherwise
filenamelogical filename of the config file, can appear in error messages
Exceptions
ConfigFile::Errorif parse error

Definition at line 115 of file config-file.cpp.

template<typename T >
static T nfd::ConfigFile::parseNumber ( const ConfigSection node,
const std::string &  key,
const std::string &  sectionName 
)
inlinestatic

parse a numeric (integral or floating point) config option

Template Parameters
Tan arithmetic type
Returns
the numeric value of the parsed option
Exceptions
Errorthe value cannot be converted to the specified type

Definition at line 110 of file config-file.hpp.

template<typename T >
static T nfd::ConfigFile::parseNumber ( const ConfigSection::value_type &  option,
const std::string &  sectionName 
)
inlinestatic

Definition at line 124 of file config-file.hpp.

bool nfd::ConfigFile::parseYesNo ( const ConfigSection node,
const std::string &  key,
const std::string &  sectionName 
)
static

parse a config option that can be either "yes" or "no"

Return values
true"yes"
false"no"
Exceptions
Errorthe value is neither "yes" nor "no"

Definition at line 59 of file config-file.cpp.

static bool nfd::ConfigFile::parseYesNo ( const ConfigSection::value_type &  option,
const std::string &  sectionName 
)
inlinestatic

Definition at line 96 of file config-file.hpp.

void nfd::ConfigFile::throwErrorOnUnknownSection ( const std::string &  filename,
const std::string &  sectionName,
const ConfigSection section,
bool  isDryRun 
)
static

Definition at line 40 of file config-file.cpp.