SimGrid  3.14.159
Versatile Simulation of Distributed Systems
simgrid::config Namespace Reference

Classes

class  Config
 
class  Flag
 A variable bound to a CLI option. More...
 
class  missing_key_error
 

Functions

template<class T >
std::string to_string (T &&value)
 
std::string const & to_string (std::string &value)
 
std::string const & to_string (std::string const &value)
 
std::string to_string (std::string &&value)
 
template<class T >
T const & getConfig (const char *name)
 
template int const & getConfig< int > (const char *name)
 
template double const & getConfig< double > (const char *name)
 
template bool const & getConfig< bool > (const char *name)
 
template std::string const & getConfig< std::string > (const char *name)
 
template<class T >
void declareFlag (const char *name, const char *description, T value, std::function< void(const T &)> callback=std::function< void(const T &)>())
 Register a configuration flag. More...
 
template void declareFlag (const char *name, const char *description, int value, std::function< void(int const &)> callback)
 
template void declareFlag (const char *name, const char *description, double value, std::function< void(double const &)> callback)
 
template void declareFlag (const char *name, const char *description, bool value, std::function< void(bool const &)> callback)
 
template void declareFlag (const char *name, const char *description, std::string value, std::function< void(std::string const &)> callback)
 
void alias (const char *realname, const char *aliasname)
 
void alias (std::initializer_list< const char *> names)
 
template<class T >
void bindFlag (T &value, const char *name, const char *description)
 Bind a variable to configuration flag. More...
 
template<class T >
void bindFlag (T &value, std::initializer_list< const char *> names, const char *description)
 
template<class T , class F >
std::enable_if< std::is_same< void, decltype(std::declval< F >)(std::declval< const T & >)))>::value, void >::type bindFlag (T &value, std::initializer_list< const char *> names, const char *description, F callback)
 Bind a variable to configuration flag. More...
 
template<class T , class F >
std::enable_if< std::is_same< void, decltype(std::declval< F >)(std::declval< const T & >)))>::value, void >::type bindFlag (T &value, const char *name, const char *description, F callback)
 
template<class T , class F >
std::enable_if< std::is_same< bool, decltype(std::declval< F >)(std::declval< const T & >)))>::value, void >::type bindFlag (T &value, const char *name, const char *description, F callback)
 Bind a variable to configuration flag. More...
 
static void xbt_cfgelm_free (void *data)
 

Function Documentation

§ to_string() [1/4]

template<class T >
std::string simgrid::config::to_string ( T &&  value)
inline

§ to_string() [2/4]

std::string const& simgrid::config::to_string ( std::string value)
inline

§ to_string() [3/4]

std::string const& simgrid::config::to_string ( std::string const &  value)
inline

§ to_string() [4/4]

std::string simgrid::config::to_string ( std::string &&  value)
inline

§ getConfig()

template<class T >
T const & simgrid::config::getConfig ( const char *  name)

§ getConfig< int >()

template int const & simgrid::config::getConfig< int > ( const char *  name)

§ getConfig< double >()

template double const & simgrid::config::getConfig< double > ( const char *  name)

§ getConfig< bool >()

template bool const & simgrid::config::getConfig< bool > ( const char *  name)

§ getConfig< std::string >()

template std::string const & simgrid::config::getConfig< std::string > ( const char *  name)

§ declareFlag() [1/5]

template<class T >
void simgrid::config::declareFlag ( const char *  name,
const char *  description,
value,
std::function< void(const T &)>  callback = std::function<void(const T&)>() 
)

Register a configuration flag.

Parameters
namename of the option
descriptionDescription of the option
valueInitial/default value
callbackcalled with the option value

§ declareFlag() [2/5]

template void simgrid::config::declareFlag ( const char *  name,
const char *  description,
int  value,
std::function< void(int const &)>  callback 
)

§ declareFlag() [3/5]

template void simgrid::config::declareFlag ( const char *  name,
const char *  description,
double  value,
std::function< void(double const &)>  callback 
)

§ declareFlag() [4/5]

template void simgrid::config::declareFlag ( const char *  name,
const char *  description,
bool  value,
std::function< void(bool const &)>  callback 
)

§ declareFlag() [5/5]

template void simgrid::config::declareFlag ( const char *  name,
const char *  description,
std::string  value,
std::function< void(std::string const &)>  callback 
)

§ alias() [1/2]

void simgrid::config::alias ( const char *  realname,
const char *  aliasname 
)

§ alias() [2/2]

void simgrid::config::alias ( std::initializer_list< const char *>  names)
inline

§ bindFlag() [1/5]

template<class T >
void simgrid::config::bindFlag ( T &  value,
const char *  name,
const char *  description 
)

Bind a variable to configuration flag.

Parameters
valueBound variable
nameFlag name
descriptionOption description

§ bindFlag() [2/5]

template<class T >
void simgrid::config::bindFlag ( T &  value,
std::initializer_list< const char *>  names,
const char *  description 
)

§ bindFlag() [3/5]

template<class T , class F >
std::enable_if<std::is_same< void, decltype( std::declval<F>)(std::declval<const T&>)) )>::value, void>::type simgrid::config::bindFlag ( T &  value,
std::initializer_list< const char *>  names,
const char *  description,
callback 
)

Bind a variable to configuration flag.


static int x;
simgrid::config::bindFlag(a, "x", [](int x) {
  if (x < x_min || x => x_max)
    throw std::range_error("must be in [x_min, x_max)")
});

§ bindFlag() [4/5]

template<class T , class F >
std::enable_if<std::is_same< void, decltype( std::declval<F>)(std::declval<const T&>)) )>::value, void>::type simgrid::config::bindFlag ( T &  value,
const char *  name,
const char *  description,
callback 
)

§ bindFlag() [5/5]

template<class T , class F >
std::enable_if<std::is_same< bool, decltype( std::declval<F>)(std::declval<const T&>)) )>::value, void>::type simgrid::config::bindFlag ( T &  value,
const char *  name,
const char *  description,
callback 
)

Bind a variable to configuration flag.


static int x;
simgrid::config::bindFlag(a, "x", [](int x) { return return x > 0; });

§ xbt_cfgelm_free()

static void simgrid::config::xbt_cfgelm_free ( void data)
static