vSMC
vSMC: Scalable Monte Carlo
Public Member Functions | List of all members
vsmc::ProgramOptionMap Class Reference

Program options. More...

#include <vsmc/utility/program_option.hpp>

Public Member Functions

 ProgramOptionMap (bool silent=false)
 
template<typename T >
ProgramOptionMapadd (const std::string &name, const std::string &desc, T *ptr)
 Add an option with a single value. More...
 
template<typename T , typename V >
ProgramOptionMapadd (const std::string &name, const std::string &desc, T *ptr, V val)
 Add an option with a single value, with a default value. More...
 
template<typename T >
ProgramOptionMapadd (const std::string &name, const std::string &desc, std::vector< T > *ptr)
 Add an option with multiple value. More...
 
template<typename T , typename V >
ProgramOptionMapadd (const std::string &name, const std::string &desc, std::vector< T > *ptr, V val)
 Add an option with multiple value, with a default value. More...
 
std::size_t count (const std::string &name) const
 Count the number of successful processing of an option. More...
 
bool help ()
 If the "help" option is processed and set to true. More...
 
std::shared_ptr< ProgramOptionoption (const std::string &name)
 Get the underlying option object. More...
 
std::shared_ptr< const ProgramOptionoption (const std::string &name) const
 Get the underlying option object. More...
 
void print_help (std::ostream &os=std::cout) const
 Print help information for each option. More...
 
void process (int argc, const char **argv, std::ostream &os=std::cout)
 Process the options. More...
 
void process (int argc, char **argv, std::ostream &os=std::cout)
 Process the options. More...
 
ProgramOptionMapremove (const std::string &name)
 
void silent (bool flag)
 Set the silent flag, if true, no warning messages will be printed for unknown options etc.,. More...
 

Detailed Description

Program options.

Definition at line 330 of file program_option.hpp.

Constructor & Destructor Documentation

vsmc::ProgramOptionMap::ProgramOptionMap ( bool  silent = false)
inlineexplicit

Definition at line 333 of file program_option.hpp.

Member Function Documentation

template<typename T >
ProgramOptionMap& vsmc::ProgramOptionMap::add ( const std::string &  name,
const std::string &  desc,
T *  ptr 
)
inline

Add an option with a single value.

Parameters
nameName of the option, on command name it shall be specified by --name
descA descritpion stream of the option
ptrThe destination that store the option value

Definition at line 346 of file program_option.hpp.

template<typename T , typename V >
ProgramOptionMap& vsmc::ProgramOptionMap::add ( const std::string &  name,
const std::string &  desc,
T *  ptr,
val 
)
inline

Add an option with a single value, with a default value.

Definition at line 357 of file program_option.hpp.

template<typename T >
ProgramOptionMap& vsmc::ProgramOptionMap::add ( const std::string &  name,
const std::string &  desc,
std::vector< T > *  ptr 
)
inline

Add an option with multiple value.

Definition at line 368 of file program_option.hpp.

template<typename T , typename V >
ProgramOptionMap& vsmc::ProgramOptionMap::add ( const std::string &  name,
const std::string &  desc,
std::vector< T > *  ptr,
val 
)
inline

Add an option with multiple value, with a default value.

Definition at line 379 of file program_option.hpp.

std::size_t vsmc::ProgramOptionMap::count ( const std::string &  name) const
inline

Count the number of successful processing of an option.

Definition at line 456 of file program_option.hpp.

bool vsmc::ProgramOptionMap::help ( )
inline

If the "help" option is processed and set to true.

Definition at line 465 of file program_option.hpp.

std::shared_ptr<ProgramOption> vsmc::ProgramOptionMap::option ( const std::string &  name)
inline

Get the underlying option object.

Definition at line 468 of file program_option.hpp.

std::shared_ptr<const ProgramOption> vsmc::ProgramOptionMap::option ( const std::string &  name) const
inline

Get the underlying option object.

Definition at line 478 of file program_option.hpp.

void vsmc::ProgramOptionMap::print_help ( std::ostream &  os = std::cout) const
inline

Print help information for each option.

Definition at line 435 of file program_option.hpp.

void vsmc::ProgramOptionMap::process ( int  argc,
const char **  argv,
std::ostream &  os = std::cout 
)
inline

Process the options.

If the option --help is given at the commad line, help information are printed.

Parameters
argcThe first argument of the main function
argvThe second argument of the main function
osThe output stream used to print help information and the warning messages if any error occurs when processing the options.

Definition at line 407 of file program_option.hpp.

void vsmc::ProgramOptionMap::process ( int  argc,
char **  argv,
std::ostream &  os = std::cout 
)
inline

Process the options.

Definition at line 421 of file program_option.hpp.

ProgramOptionMap& vsmc::ProgramOptionMap::remove ( const std::string &  name)
inline

Definition at line 388 of file program_option.hpp.

void vsmc::ProgramOptionMap::silent ( bool  flag)
inline

Set the silent flag, if true, no warning messages will be printed for unknown options etc.,.

Definition at line 489 of file program_option.hpp.