QNANO
Public Types | Public Member Functions | Public Attributes | List of all members
Parameter_Map Class Reference
Collaboration diagram for Parameter_Map:
Collaboration graph
[legend]

Public Types

typedef std::map< std::string, std::vector< std::vector< std::string > > >::iterator map_iter
 
typedef std::map< std::string, std::vector< std::vector< std::string > > >::const_iterator map_const_iter
 

Public Member Functions

void add (const std::string &key, const std::vector< std::string > &stringvec)
 
void add (const std::string &key, const std::string &str)
 
void set_requested (const std::string &key)
 
bool is_specified (const std::string &key, size_t row=0, size_t col=0)
 
bool is_double (const std::string &key)
 
bool is_bool (const std::string &key)
 
bool is_Vec3d (const std::string &key, size_t row=0, size_t col=0)
 
bool is_VecXd (const std::string &key, size_t X, size_t row=0, size_t col=0)
 
void complain_if_not_specified (const std::string &key, std::ostream &ofs=std::cerr)
 
void quit_if_not_specified (const std::string &key, size_t row=0, size_t col=0)
 
void override_parameter (const std::string &key, const std::vector< std::string > &stringvec)
 
void override_parameter (const std::string &key, const std::string &value)
 
void override_parameter (const std::string &key, double value)
 
const Parameter_Values & get (const std::string &key)
 
size_t get_rows (const std::string &key)
 
size_t get_cols (const std::string &key, size_t row)
 
std::vector< std::string > get_all_strings (const std::string &key)
 
std::string get_as_string (const std::string &key, const std::string default_="", size_t row=0, size_t col=0)
 
std::string get_as_string_check (const std::string &key, const std::string default_="", size_t row=0, size_t col=0)
 
double get_as_double (const std::string &key, double default_=0., size_t row=0, size_t col=0)
 
double get_as_double_check (const std::string &key, double default_=0., size_t row=0, size_t col=0)
 
size_t get_as_sizet (const std::string &key, size_t default_=0., size_t row=0, size_t col=0)
 
double get_as_sizet_check (const std::string &key, size_t default_=0., size_t row=0, size_t col=0)
 
bool get_as_bool (const std::string &key, bool default_=false, size_t row=0, size_t col=0)
 
std::vector< double > get_as_VecXd (const std::string &key, size_t X, std::vector< double > default_=std::vector< double >(), size_t row=0, size_t col=0)
 
Vec3d get_as_Vec3d (const std::string &key, Vec3d default_=Vec3d(), size_t row=0, size_t col=0)
 
Vec3d get_as_Vec3d (const char *key, Vec3d default_=Vec3d(), size_t row=0, size_t col=0)
 
Vec3d get_as_Vec3d_check (const std::string &key, Vec3d default_=Vec3d(), size_t row=0, size_t col=0)
 
void add_from_file (const std::string &filename)
 
void add_from_command_line (int args, char **argv)
 
void add_from_command_line_or_driver (int args, char **argv)
 
void print (std::ostream &ofs) const
 
void print (const std::string filename) const
 
void print (const char *filename) const
 
void check_requested () const
 
void setup_logger ()
 
void copy (const Parameter_Map &other)
 
Parameter_Mapoperator= (const Parameter_Map &other)
 
 Parameter_Map (const Parameter_Map &other)
 
 Parameter_Map (const std::string &filename, bool use_check_requested=false)
 
 Parameter_Map (const char *filename, bool use_check_requested=false)
 
 Parameter_Map (int &args, char **&argv, bool use_check_requested=false)
 

Public Attributes

int * p_args
 
char *** p_argv
 
std::map< std::string, Parameter_Values > map
 
std::vector< std::string > requested
 Track which parameters have been requested to point out unused paramters:
 
bool use_check_requested_on_destruction
 
Debug_Logger logger
 It is very convenient to pass along a log file for debugging purposes with the Parameter_Map:
 
std::vector< std::vector< std::string > > empty_stringvecvec
 

Member Data Documentation

std::map<std::string, Parameter_Values > Parameter_Map::map

Parameters are stored by key + tokens. The tokens are contained in a string vector. We might have multiple occurences, so we need a vector of string vectors. And then we need to provide tools to extact doubles or bools.


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