libeblearntools
ebl::configuration Class Reference

#include <configuration.h>

Inheritance diagram for ebl::configuration:
ebl::meta_configuration

List of all members.

Public Member Functions

 configuration ()
 empty constructor.
 configuration (const configuration &other)
 copy constructor.
 configuration (const char *filename, bool replquotes=false, bool silent=false, bool resolve=true)
 configuration (const string &filename, bool replquotes=false, bool silent=false, bool resolve=true)
 configuration (string_map_t &smap, textlist &txt, string &name, string &output_dir)
virtual ~configuration ()
 destructor.
bool read (const char *fname, bool resolve=true, bool replquotes=true, bool silent=false, const char *outdir=NULL)
bool write (const char *fname)
 save configuration into file fname.
void resolve (bool replquotes=false)
void resolve_bq ()
 only resolve backquotes blocs.
const string & get_name ()
 return the name of the configuration
void set_name (const string &name)
 set name of the configuration
const string & get_output_dir ()
 return output directory.
void set_output_dir (const string &d)
 set output directory.
template<typename T >
void get (T &v, const char *varname)
template<typename T >
void get (T &v, const std::string &varname)
void get (intg &v, const char *varname)
 Get variable with name varname as an intg into v.
void get (uint &v, const char *varname)
 Get variable with name varname as an uint into v.
void get (double &v, const char *varname)
 Get variable with name varname as a double into v.
void get (float &v, const char *varname)
 Get variable with name varname as a double into v.
void get (string &v, const char *varname)
 Get variable with name varname as a string into v.
void get (bool &v, const char *varname)
 Get variable with name varname as a string into v.
const string & get_string (const char *varname)
const string & get_string (const string &varname)
const char * get_cstring (const char *varname)
double get_double (const char *varname)
uint try_get_uint (const char *varname, uint default_val)
int try_get_int (const char *varname, int default_val)
intg try_get_intg (const char *varname, intg default_val)
float try_get_float (const char *varname, float default_val)
double try_get_double (const char *varname, double default_val)
string try_get_string (const char *varname, const char *default_val="")
float get_float (const char *varname)
uint get_uint (const char *varname)
int get_int (const char *varname)
intg get_intg (const char *varname)
bool get_bool (const char *varname)
char get_char (const char *varname)
bool exists_bool (const char *varname)
 Returns true if variable exists and its value is true, false otherwise.
bool exists_true (const char *varname)
 Returns true if variable exists and its value is true, false otherwise.
bool exists_true (const string &varname)
 Returns true if variable exists and its value is true, false otherwise.
bool exists_false (const char *varname)
 Returns true if variable exists and its value is false, true otherwise.
void exists_throw (const char *varname)
void set (const char *varname, const char *value)
 set variable 'varname' to value 'value'
const char * get_cstr (const char *varname, bool silent=false)
vector< string > get_all_strings (const string &s)
 Return a vector of all variable names that begin with 's'.
bool exists (const char *varname)
 returns true if the variable exists, false otherwise.
bool exists (const std::string &varname)
 returns true if the variable exists, false otherwise.
virtual void pretty ()
 print loaded variables
virtual void pretty_match (const string &s)
 Print all variables who's name is contained in string 's'.

Protected Member Functions

void resolve_variables (string_map_t &m, bool replquotes=false)
 Resolve all variables in map m.
string resolve0 (string_map_t &m, const string &variable, const string &v, bool firstonly=false)
 Resolve double quotes blocs, or entire string if not present.
string resolve_backquotes (string_map_t &m, const string &variable, const string &v, bool firstonly=false)
 Resolve back quotes blocs only.
string resolve_string (string_map_t &m, const string &variable, const string &v, bool firstonly=false)
 Resolve an unquoted string (just variables).
bool extract_variables (const char *fname, string_map_t &smap, textlist &txt, string_map_t *meta_smap=NULL, bool bresolve=true, bool replquotes=false, bool silent=false)

Protected Attributes

string_map_t smap
 map between variables and values
string_map_t tmp_smap
 map between variables and values
string name
 name of configuration
string output_dir
 output directory
textlist otxt
 original text
bool silent

Detailed Description

configuration class. handle files containing variable definitions.


Constructor & Destructor Documentation

ebl::configuration::configuration ( const char *  filename,
bool  replquotes = false,
bool  silent = false,
bool  resolve = true 
)

load configuration found in filename.

Parameters:
resolveIf true, replace all referenced variables by their value.
ebl::configuration::configuration ( const string &  filename,
bool  replquotes = false,
bool  silent = false,
bool  resolve = true 
)

load configuration found in filename.

Parameters:
resolveIf true, replace all referenced variables by their value.
ebl::configuration::configuration ( string_map_t &  smap,
textlist txt,
string &  name,
string &  output_dir 
)

Load configuration from already loaded map of variables, name and output directory.

Parameters:
txtOriginal text lines of configuration.

Member Function Documentation

void ebl::configuration::exists_throw ( const char *  varname)

Checks that variable varname exists in the map, if not throw an exception.

template<typename T >
void ebl::configuration::get ( T &  v,
const char *  varname 
)

Generic template get, return the value associated with varname, if varname exists, otherwise throws an execption.

template<typename T >
void ebl::configuration::get ( T &  v,
const std::string &  varname 
)

Generic template get, return the value associated with varname, if varname exists, otherwise throws an execption.

bool ebl::configuration::get_bool ( const char *  varname)

returns a bool conversion of the string contained in the variable with name varname. if varname does not exist or the bool conversion fails, this throws an exception.

char ebl::configuration::get_char ( const char *  varname)

returns a char conversion of the string contained in the variable with name varname. if varname does not exist or the char conversion fails, this throws an exception.

const char * ebl::configuration::get_cstr ( const char *  varname,
bool  silent = false 
)

get variable 'varname'.

Parameters:
silentIf false, warn when using env variable.
const char * ebl::configuration::get_cstring ( const char *  varname)

returns the string contained the variable with name varname. if varname does not exist, this throws an exception.

double ebl::configuration::get_double ( const char *  varname)

returns a double conversion of the string contained in the variable with name varname. if varname does not exist or the double conversion fails, this throws an exception.

float ebl::configuration::get_float ( const char *  varname)

returns a float conversion of the string contained in the variable with name varname. if varname does not exist or the float conversion fails, this throws an exception.

int ebl::configuration::get_int ( const char *  varname)

returns an int conversion of the string contained in the variable with name varname. if varname does not exist or the int conversion fails, this throws an exception.

intg ebl::configuration::get_intg ( const char *  varname)

Returns an intg conversion of the string contained in the variable with name varname. if varname does not exist or the int conversion fails, this throws an exception.

const string & ebl::configuration::get_string ( const char *  varname)

returns the string contained the variable with name varname. if varname does not exist, this throws an exception.

const string & ebl::configuration::get_string ( const string &  varname)

returns the string contained the variable with name varname. if varname does not exist, this throws an exception.

uint ebl::configuration::get_uint ( const char *  varname)

returns a uint conversion of the string contained in the variable with name varname. if varname does not exist or the uint conversion fails, this throws an exception.

bool ebl::configuration::read ( const char *  fname,
bool  resolve = true,
bool  replquotes = true,
bool  silent = false,
const char *  outdir = NULL 
)

load configuration from file fname.

Parameters:
resolveIf true, replace all referenced variables by their value.
void ebl::configuration::resolve ( bool  replquotes = false)

resolve variables names in variables

Parameters:
replquotesRemove quotes or not from variable strings.
string ebl::configuration::resolve_backquotes ( string_map_t &  m,
const string &  variable,
const string &  v,
bool  firstonly = false 
) [protected]

Resolve back quotes blocs only.

Resolve single quotes blocs, or entire string if not present.

double ebl::configuration::try_get_double ( const char *  varname,
double  default_val 
)

If variable "varname" exists, return its value in double, otherwise return 'default_val'. If double conversion fails, it throws an exception.

float ebl::configuration::try_get_float ( const char *  varname,
float  default_val 
)

If variable "varname" exists, return its value in float, otherwise return 'default_val'. If float conversion fails, it throws an exception.

int ebl::configuration::try_get_int ( const char *  varname,
int  default_val 
)

If variable "varname" exists, return its value in int, otherwise return 'default_val'. If int conversion fails, it throws an exception.

intg ebl::configuration::try_get_intg ( const char *  varname,
intg  default_val 
)

If variable "varname" exists, return its value in float, otherwise return 'default_val'. If float conversion fails, it throws an exception.

string ebl::configuration::try_get_string ( const char *  varname,
const char *  default_val = "" 
)

If variable "varname" exists, return its value in float, otherwise return 'default_val'. If float conversion fails, it throws an exception.

uint ebl::configuration::try_get_uint ( const char *  varname,
uint  default_val 
)

If variable "varname" exists, return its value in uint, otherwise return 'default_val'. If uint conversion fails, it throws an exception.


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