#include <ParmParse.H>
The ParmParse class is used to interpret parameters passed in to a program from the command line and an arbitrary collection of input files. The parameters are stored in static table that can be queried by any object of type ParmParse. A parameter can be either an "option" (usually specified on the command line) or a "definition". An option is of the form "-<name>" and is stored in the table without the hyphen. A definition is of the form "<name> = <value><value>...<value>". It is stored in the table as a name, value-list pair.
In the following example, verbose and no_opt are stored in the table as options. niter is a definition with the single integer value 10; name is a definition with the string value "big code" and dx is a definition with the two floating point values 0.5 and 0.75.
prog -verbose -no_opt niter = 10 name = "big code" dx = 0.5 0.75
The ParmParse class has two constructors. The first is responsible for building the table and is usually called by the main routine of an application. It has arguments for the command line argc and argv parameters, as well as an optional filename argument for reading definitions from an input file. The table is built by reading the input file first (if it exists) with the command line arguments added to the end of the table. The order of a definition in the table is significant, so command line parameters can be used to override definitions in the input file. A definition of the explicit form: FILE=<filename> is not added to the table but is a directive to include the named file at that point in the table.
The second constructor is generally used by other classes in the code. It permits access to the table via a large collection of query functions. Both constructors have an optional prefix argument that narrows the search to entries in the table with the same prefix. For example, let PlanR be a ParmParse object with code prefix "ope". PlanR.get("val",v) will look for an entry in the parameter list of the form: ope.val==
, and will reject all entries not starting with the correct code prefix.
The query functions search the table for definition names that match a given string (and prefix) and return values from the corresponding value list. The values can be returned as ints, Array<int>s, floats, std::vector<float>s, doubles, std::vector<double>s, std::strings, or std::vector<std::sring>s. All values in the table are stored as PP_String objects, but if an int, float, or double is requested, the translation is done automatically. In the previous example, the value of niter could be returned as either an std::string, an int, a double, or a float. The values of dx can be returned as std::strings, floats, or doubles, but the value of name can be returned only as an std::string.
Comments in an input file include all text from a `#' character to the end of the line. Here is a sample input file:
-no_garbage
niter = 100
title = "Double Wammy"
cell_size = 0.5 0.75
plot.var = Density 1 10
plot.var = Energy 5 12
bigarray = 1 2 3 4 5 6 7 8
9 10 11 12
test = apple "boy blue" 10 20 30 40
FILE = prob_file
Public Member Functions | |
ParmParse (int argc, char **argv, const char *prefix=0, const char *parfile=0) | |
void | define (int argc, char **argv, const char *prefix=0, const char *parfile=0) |
Initialize after calling the default constructor. | |
ParmParse (const char *prefix=0) | |
ParmParse (const std::string &a_string) | |
got sick of typing c_str() | |
~ParmParse () | |
bool | contains (const char *name) const |
bool | contains (const std::string &name) const |
int | countval (const char *name, int n=-1) const |
int | countname (const char *name) const |
int | countname (const std::string &name) const |
void | addEntries (const std::string &strEntry) |
template<typename TYPE> | |
void | setVal (const std::string &varName, TYPE varVal) |
void | setStr (const std::string &varName, std::string varVal) |
void | dumpTable (std::ostream &os) const |
void | get (const char *name, int &ref, int ival=0) const |
access single object | |
int | query (const char *name, int &ref, int ival=0) const |
void | get (const char *name, unsigned long &ref, int ival=0) const |
access single object | |
int | query (const char *name, unsigned long &ref, int ival=0) const |
void | get (const char *name, float &ref, int ival=0) const |
int | query (const char *name, float &ref, int ival=0) const |
void | get (const char *name, double &ref, int ival=0) const |
int | query (const char *name, double &ref, int ival=0) const |
void | get (const char *name, std::string &ref, int ival=0) const |
Get the ival'th value of last occurrence of the requested name. | |
int | query (const char *name, std::string &ref, int ival=0) const |
Get the ival'th value of last occurrence of the requested name. | |
void | get (const char *name, bool &ref, int ival=0) const |
Get the ival'th value of last occurrence of the requested name. | |
int | query (const char *name, bool &ref, int ival=0) const |
Get the ival'th value of last occurrence of the requested name. | |
void | getarr (const char *name, Vector< int > &ref, int start_ix, int num_val) const |
access an array of objects | |
void | getarr (const char *name, std::vector< int > &ref, int start_ix, int num_val) const |
access an array of objects | |
int | queryarr (const char *name, Vector< int > &ref, int start_ix, int num_val) const |
access an array of objects | |
int | queryarr (const char *name, std::vector< int > &ref, int start_ix, int num_val) const |
access an array of objects | |
void | getarr (const char *name, Vector< unsigned long > &ref, int start_ix, int num_val) const |
access an array of objects | |
void | getarr (const char *name, std::vector< unsigned long > &ref, int start_ix, int num_val) const |
access an array of objects | |
int | queryarr (const char *name, Vector< unsigned long > &ref, int start_ix, int num_val) const |
access an array of objects | |
int | queryarr (const char *name, std::vector< unsigned long > &ref, int start_ix, int num_val) const |
access an array of objects | |
void | getarr (const char *name, Vector< float > &ref, int start_ix, int num_val) const |
access an array | |
void | getarr (const char *name, std::vector< float > &ref, int start_ix, int num_val) const |
access an array | |
int | queryarr (const char *name, Vector< float > &ref, int start_ix, int num_val) const |
int | queryarr (const char *name, std::vector< float > &ref, int start_ix, int num_val) const |
void | getarr (const char *name, Vector< double > &ref, int start_ix, int num_val) const |
void | getarr (const char *name, std::vector< double > &ref, int start_ix, int num_val) const |
int | queryarr (const char *name, Vector< double > &ref, int start_ix, int num_val) const |
int | queryarr (const char *name, std::vector< double > &ref, int start_ix, int num_val) const |
void | getarr (const char *name, Vector< std::string > &ref, int start_ix, int num_val) const |
void | getarr (const char *name, std::vector< std::string > &ref, int start_ix, int num_val) const |
int | queryarr (const char *name, Vector< std::string > &ref, int start_ix, int num_val) const |
int | queryarr (const char *name, std::vector< std::string > &ref, int start_ix, int num_val) const |
void | getarr (const char *name, Vector< bool > &ref, int start_ix, int num_val) const |
void | getarr (const char *name, std::vector< bool > &ref, int start_ix, int num_val) const |
int | queryarr (const char *name, Vector< bool > &ref, int start_ix, int num_val) const |
int | queryarr (const char *name, std::vector< bool > &ref, int start_ix, int num_val) const |
const char * | prefix () const |
return prefix | |
Friends | |
class | PP_entry |
ParmParse::ParmParse | ( | int | argc, | |
char ** | argv, | |||
const char * | prefix = 0 , |
|||
const char * | parfile = 0 | |||
) |
Construct an initial ParmParse object from the argc and argv passed in to main(). An error will be signalled if another ParmParse object currently exists. If parfile is specified, read the parameters in from that file first and then append those derived from argv to the table. If prefix is specified, load this string as the code prefix for this particular ParmParse object.
ParmParse::ParmParse | ( | const char * | prefix = 0 |
) |
Construct an additional ParmParse object sharing the same internal table as any other such objects in existence. If prefix is specified, load this string as the code prefix for this particular ParmParse object. If there are no other existing objects, this doesn't do anything, and define() must be called before the object can be used.
ParmParse::ParmParse | ( | const std::string & | a_string | ) |
got sick of typing c_str()
ParmParse::~ParmParse | ( | ) |
The destructor. The internal static table will only be deleted if there are no other ParmParse objects in existence.
void ParmParse::define | ( | int | argc, | |
char ** | argv, | |||
const char * | prefix = 0 , |
|||
const char * | parfile = 0 | |||
) |
Initialize after calling the default constructor.
Same as the constructor with the same args.
bool ParmParse::contains | ( | const char * | name | ) | const |
Returns true if name is in table.
bool ParmParse::contains | ( | const std::string & | name | ) | const |
Returns true if name is in table.
int ParmParse::countval | ( | const char * | name, | |
int | n = -1 | |||
) | const [inline] |
Returns the number of values associated with nth occurence of name (prepended with the prefix) in the table. n == -1 implies the last occurence.
References PP_entry.
int ParmParse::countname | ( | const char * | name | ) | const |
Returns the number of times the given name (prepended with prefix) appears in the table.
Referenced by countname().
int ParmParse::countname | ( | const std::string & | name | ) | const [inline] |
Returns the number of times the given name (prepended with prefix) appears in the table.
References countname().
void ParmParse::addEntries | ( | const std::string & | strEntry | ) | [inline] |
Accessor for private method that adds parameters to the global table (SWS-Tech-X Research) e.g. parmParseObj.addEntries("tst_value = 2")
void ParmParse::setVal | ( | const std::string & | varName, | |
TYPE | varVal | |||
) | [inline] |
Append input parameter pairs to ParmParse
1. convert value to string 2. construct string line syntax for ParmParse 3. use special public method in ParmParse.H
varName | parameter string name | |
varVal | numerical value type |
void ParmParse::setStr | ( | const std::string & | varName, | |
std::string | varVal | |||
) | [inline] |
Append input parameter pairs to ParmParse
1. convert value to string 2. construct string line syntax for ParmParse 3. use special public method in ParmParse.H
varName | parameter string name | |
varVal | string value type |
void ParmParse::dumpTable | ( | std::ostream & | os | ) | const |
Write the contents of the table in ASCII to the ostream.
Referenced by getarr().
void ParmParse::get | ( | const char * | name, | |
int & | ref, | |||
int | ival = 0 | |||
) | const [inline] |
access single object
Get the ival'th value of last occurrence of the requested name. If successful, the value is converted to an int and stored in reference ref. If the name does not exist or ival'th value does not exist, or if the printed representation of the value cannot be converted to an int, an error message is output and the program halts. Note that ival == 0 is the first value in the list.
int ParmParse::query | ( | const char * | name, | |
int & | ref, | |||
int | ival = 0 | |||
) | const [inline] |
Get the ival'th value of last occurrence of the requested name. If successful, the value is converted to an int and stored in reference ref. Returns 1 if successful. Returns 0 if the name does not exist. If ival'th value does not exist, or if the printed representation of the value cannot be converted to an int, an error message is output and the program halts. Note that ival == 0 is the first value in the list.
void ParmParse::get | ( | const char * | name, | |
unsigned long & | ref, | |||
int | ival = 0 | |||
) | const [inline] |
access single object
Get the ival'th value of last occurrence of the requested name. If successful, the value is converted to a n unsigned long and stored in reference ref. If the name does not exist or ival'th value does not exist, or if the printed representation of the value cannot be converted to an int, an error message is output and the program halts. Note that ival == 0 is the first value in the list.
int ParmParse::query | ( | const char * | name, | |
unsigned long & | ref, | |||
int | ival = 0 | |||
) | const [inline] |
Get the ival'th value of last occurrence of the requested name. If successful, the value is converted to an unsigned long and stored in reference ref. Returns 1 if successful. Returns 0 if the name does not exist. If ival'th value does not exist, or if the printed representation of the value cannot be converted to an int, an error message is output and the program halts. Note that ival == 0 is the first value in the list.
void ParmParse::get | ( | const char * | name, | |
float & | ref, | |||
int | ival = 0 | |||
) | const [inline] |
Get the ival'th value of last occurrence of the requested name. If successful, the value is converted to a float and stored in reference ref. If the name does not exist or ival'th value does not exist, or if the printed representation of the value cannot be converted to a float, an error message is output and the program halts. Note that ival == 0 is the first value in the list.
int ParmParse::query | ( | const char * | name, | |
float & | ref, | |||
int | ival = 0 | |||
) | const [inline] |
Get the ival'th value of last occurrence of the requested name. If successful, the value is converted to a float and stored in reference ref. Returns 1 if successful. Returns 0 if the name does not exist. If ival'th value does not exist, or if the printed representation of the value cannot be converted to a float, an error message is output and the program halts. Note that ival == 0 is the first value in the list.
void ParmParse::get | ( | const char * | name, | |
double & | ref, | |||
int | ival = 0 | |||
) | const [inline] |
Get the ival'th value of last occurrence of the requested name. If successful, the value is converted to a double and stored in reference ref. If the name does not exist or ival'th value does not exist, or if the printed representation of the value cannot be converted to a double, an error message is output and the program halts. Note that ival == 0 is the first value in the list.
int ParmParse::query | ( | const char * | name, | |
double & | ref, | |||
int | ival = 0 | |||
) | const [inline] |
Get the ival'th value of last occurrence of the requested name. If successful, the value is converted to a double and stored in reference ref. Returns 1 if successful. Returns 0 if the name does not exist. If ival'th value does not exist, or if the printed representation of the value cannot be converted to a double, an error message is output and the program halts. Note that ival == 0 is the first value in the list.
void ParmParse::get | ( | const char * | name, | |
std::string & | ref, | |||
int | ival = 0 | |||
) | const [inline] |
Get the ival'th value of last occurrence of the requested name.
Get the ival'th value of last occurrence of the requested name. If successful, the value is converted to a string and stored in reference ref. If the name does not exist or ival'th value does not exist, or if the printed representation of the value cannot be converted to a string, an error message is output and the program halts. Note that ival == 0 is the first value in the list.
int ParmParse::query | ( | const char * | name, | |
std::string & | ref, | |||
int | ival = 0 | |||
) | const [inline] |
Get the ival'th value of last occurrence of the requested name.
Get the ival'th value of last occurrence of the requested name. If successful, the value is converted to a string and stored in reference ref. Returns 1 if successful. Returns 0 if the name does not exist. If ival'th value does not exist, or if the printed representation of the value cannot be converted to a string, an error message is output and the program halts. Note that ival == 0 is the first value in the list.
void ParmParse::get | ( | const char * | name, | |
bool & | ref, | |||
int | ival = 0 | |||
) | const [inline] |
Get the ival'th value of last occurrence of the requested name.
Get the ival'th value of last occurrence of the requested name. If successful, the value is converted to a bool and stored in reference ref. If the name does not exist or ival'th value does not exist, or if the printed representation of the value cannot be converted to a bool, an error message is output and the program halts. Valid representations of bool are "true" and "false" (case is ignored), and numeric values 1 (=true) and 0 (=false). Note that ival == 0 is the first value in the list.
int ParmParse::query | ( | const char * | name, | |
bool & | ref, | |||
int | ival = 0 | |||
) | const [inline] |
Get the ival'th value of last occurrence of the requested name.
Get the ival'th value of last occurrence of the requested name. If successful, the value is converted to a bool and stored in reference ref. Returns 1 if successful. Returns 0 if the name does not exist. If ival'th value does not exist, or if the printed representation of the value cannot be converted to a bool, an error message is output and the program halts. Valid representations of bool are "true" and "false" (case is ignored), and numeric values 1 (=true) and 0 (=false). Note that ival == 0 is the first value in the list.
void ParmParse::getarr | ( | const char * | name, | |
Vector< int > & | ref, | |||
int | start_ix, | |||
int | num_val | |||
) | const [inline] |
access an array of objects
Gets a std::vector<int> of num_val values from last occurrence of given name. If successful, the values are converted to an int and stored in the std::vector<int> object ref. ref is resized (if necessary) to hold num_val values. The value in the list indexed by start_ix is copied into std::vector<int>[0], std::vector<int>[1] holds start_ix+1, etc. If there are fewer than start_ix + num_val values associated with the last occurrence, or if some of the values cannot be converted to an int, an error message is reported and the program halts.
References Vector< T >::resize(), and Vector< T >::size().
Referenced by getarr().
void ParmParse::getarr | ( | const char * | name, | |
std::vector< int > & | ref, | |||
int | start_ix, | |||
int | num_val | |||
) | const [inline] |
access an array of objects
Gets a std::vector<int> of num_val values from last occurrence of given name. If successful, the values are converted to an int and stored in the std::vector<int> object ref. ref is resized (if necessary) to hold num_val values. The value in the list indexed by start_ix is copied into std::vector<int>[0], std::vector<int>[1] holds start_ix+1, etc. If there are fewer than start_ix + num_val values associated with the last occurrence, or if some of the values cannot be converted to an int, an error message is reported and the program halts.
References getarr().
int ParmParse::queryarr | ( | const char * | name, | |
Vector< int > & | ref, | |||
int | start_ix, | |||
int | num_val | |||
) | const [inline] |
access an array of objects
Gets a std::vector<int> of num_val values from last occurrence of given name. If successful, the values are converted to an int and stored in the std::vector<int> object ref. ref is resized (if necessary) to hold num_val values. The value in the list indexed by start_ix is copied into std::vector<int>[0], std::vector<int>[1] holds start_ix+1, etc. Returns 0 if the name does not exist. If there are fewer than start_ix + num_val values associated with the last occurrence, or if some of the values cannot be converted to an int, an error message is reported and the program halts.
References Vector< T >::resize(), and Vector< T >::size().
Referenced by getarr(), and queryarr().
int ParmParse::queryarr | ( | const char * | name, | |
std::vector< int > & | ref, | |||
int | start_ix, | |||
int | num_val | |||
) | const [inline] |
access an array of objects
Gets a std::vector<int> of num_val values from last occurrence of given name. If successful, the values are converted to an int and stored in the std::vector<int> object ref. ref is resized (if necessary) to hold num_val values. The value in the list indexed by start_ix is copied into std::vector<int>[0], std::vector<int>[1] holds start_ix+1, etc. Returns 0 if the name does not exist. If there are fewer than start_ix + num_val values associated with the last occurrence, or if some of the values cannot be converted to an int, an error message is reported and the program halts.
References queryarr().
void ParmParse::getarr | ( | const char * | name, | |
Vector< unsigned long > & | ref, | |||
int | start_ix, | |||
int | num_val | |||
) | const |
access an array of objects
Gets a std::vector<unsigned long> of num_val values from last occurrence of given name. If successful, the values are converted to an int and stored in the std::vector<unsigned long> object ref. ref is resized (if necessary) to hold num_val values. The value in the list indexed by start_ix is copied into std::vector<unsigned long>[0], std::vector<unsigned long>[1] holds start_ix+1, etc. If there are fewer than start_ix + num_val values associated with the last occurrence, or if some of the values cannot be converted to an unsigned long, an error message is reported and the program halts.
void ParmParse::getarr | ( | const char * | name, | |
std::vector< unsigned long > & | ref, | |||
int | start_ix, | |||
int | num_val | |||
) | const |
access an array of objects
Gets a std::vector<unsigned long> of num_val values from last occurrence of given name. If successful, the values are converted to an unsigned long and stored in the std::vector<unsigned long> object ref. ref is resized (if necessary) to hold num_val values. The value in the list indexed by start_ix is copied into std::vector<unsigned long>[0], std::vector<unsigned long>[1] holds start_ix+1, etc. If there are fewer than start_ix + num_val values associated with the last occurrence, or if some of the values cannot be converted to an unsigned long, an error message is reported and the program halts.
int ParmParse::queryarr | ( | const char * | name, | |
Vector< unsigned long > & | ref, | |||
int | start_ix, | |||
int | num_val | |||
) | const |
access an array of objects
Gets a std::vector<unsigned long> of num_val values from last occurrence of given name. If successful, the values are converted to an unsigned long and stored in the std::vector<unsigned long> object ref. ref is resized (if necessary) to hold num_val values. The value in the list indexed by start_ix is copied into std::vector<unsigned long>[0], std::vector<unsigned long>[1] holds start_ix+1, etc. Returns 0 if the name does not exist. If there are fewer than start_ix + num_val values associated with the last occurrence, or if some of the values cannot be converted to an unsigned long, an error message is reported and the program halts.
int ParmParse::queryarr | ( | const char * | name, | |
std::vector< unsigned long > & | ref, | |||
int | start_ix, | |||
int | num_val | |||
) | const |
access an array of objects
Gets a std::vector<unsigned long> of num_val values from last occurrence of given name. If successful, the values are converted to an unsigned long and stored in the std::vector<unsigned long> object ref. ref is resized (if necessary) to hold num_val values. The value in the list indexed by start_ix is copied into std::vector<unsigned long>[0], std::vector<unsigned long>[1] holds start_ix+1, etc. Returns 0 if the name does not exist. If there are fewer than start_ix + num_val values associated with the last occurrence, or if some of the values cannot be converted to an unsigned long, an error message is reported and the program halts.
void ParmParse::getarr | ( | const char * | name, | |
Vector< float > & | ref, | |||
int | start_ix, | |||
int | num_val | |||
) | const [inline] |
access an array
Gets a std::vector<float> of num_val values from last occurrence of given name. If successful, the values are converted to a float and stored in the std::vector<float> object ref. ref is resized (if necessary) to hold num_val values. The value in the list indexed by start_ix is copied into std::vector<float>[0], std::vector<float>[1] holds start_ix+1, etc. If there are fewer than start_ix + num_val values associated with the last occurrence, or if some of the values cannot be converted to a float, an error message is reported and the program halts.
References getarr(), Vector< T >::resize(), and Vector< T >::size().
void ParmParse::getarr | ( | const char * | name, | |
std::vector< float > & | ref, | |||
int | start_ix, | |||
int | num_val | |||
) | const [inline] |
access an array
Gets a std::vector<float> of num_val values from last occurrence of given name. If successful, the values are converted to a float and stored in the std::vector<float> object ref. ref is resized (if necessary) to hold num_val values. The value in the list indexed by start_ix is copied into std::vector<float>[0], std::vector<float>[1] holds start_ix+1, etc. If there are fewer than start_ix + num_val values associated with the last occurrence, or if some of the values cannot be converted to a float, an error message is reported and the program halts.
References getarr().
int ParmParse::queryarr | ( | const char * | name, | |
Vector< float > & | ref, | |||
int | start_ix, | |||
int | num_val | |||
) | const [inline] |
Gets a std::vector<float> of num_val values from last occurrence of given name. If successful, the values are converted to a float and stored in the std::vector<float> object ref. ref is resized (if necessary) to hold num_val values. The value in the list indexed by start_ix is copied into std::vector<float>[0], std::vector<float>[1] holds start_ix+1, etc. Returns 0 if the name does not exist. If there are fewer than start_ix + num_val values associated with the last occurrence, or if some of the values cannot be converted to a float, an error message is reported and the program halts.
References queryarr(), Vector< T >::resize(), and Vector< T >::size().
int ParmParse::queryarr | ( | const char * | name, | |
std::vector< float > & | ref, | |||
int | start_ix, | |||
int | num_val | |||
) | const [inline] |
Gets a std::vector<float> of num_val values from last occurrence of given name. If successful, the values are converted to a float and stored in the std::vector<float> object ref. ref is resized (if necessary) to hold num_val values. The value in the list indexed by start_ix is copied into std::vector<float>[0], std::vector<float>[1] holds start_ix+1, etc. Returns 0 if the name does not exist. If there are fewer than start_ix + num_val values associated with the last occurrence, or if some of the values cannot be converted to a float, an error message is reported and the program halts.
References queryarr().
void ParmParse::getarr | ( | const char * | name, | |
Vector< double > & | ref, | |||
int | start_ix, | |||
int | num_val | |||
) | const [inline] |
Gets a std::vector<double> of num_val values from last occurrence of given name. If successful, the values are converted to a double and stored in the std::vector<double> object ref. ref is resized (if necessary) to hold num_val values. The value in the list indexed by start_ix is copied into std::vector<double>[0], std::vector<double>[1] holds start_ix+1, etc. If there are fewer than start_ix + num_val values associated with the last occurrence, or if some of the values cannot be converted to a double, an error message is reported and the program halts.
References MayDay::Abort(), dumpTable(), queryarr(), Vector< T >::resize(), and Vector< T >::size().
void ParmParse::getarr | ( | const char * | name, | |
std::vector< double > & | ref, | |||
int | start_ix, | |||
int | num_val | |||
) | const [inline] |
Gets a std::vector<double> of num_val values from last occurrence of given name. If successful, the values are converted to a double and stored in the std::vector<double> object ref. ref is resized (if necessary) to hold num_val values. The value in the list indexed by start_ix is copied into std::vector<double>[0], std::vector<double>[1] holds start_ix+1, etc. If there are fewer than start_ix + num_val values associated with the last occurrence, or if some of the values cannot be converted to a double, an error message is reported and the program halts.
References MayDay::Abort(), dumpTable(), and queryarr().
int ParmParse::queryarr | ( | const char * | name, | |
Vector< double > & | ref, | |||
int | start_ix, | |||
int | num_val | |||
) | const [inline] |
Gets a std::vector<double> of num_val values from last occurrence of given name. If successful, the values are converted to a double and stored in the std::vector<double> object ref. ref is resized (if necessary) to hold num_val values. The value in the list indexed by start_ix is copied into std::vector<double>[0], std::vector<double>[1] holds start_ix+1, etc. Returns 0 if the name does not exist. If there are fewer than start_ix + num_val values associated with the last occurrence, or if some of the values cannot be converted to a double, an error message is reported and the program halts.
References queryarr(), Vector< T >::resize(), and Vector< T >::size().
int ParmParse::queryarr | ( | const char * | name, | |
std::vector< double > & | ref, | |||
int | start_ix, | |||
int | num_val | |||
) | const [inline] |
Gets a std::vector<double> of num_val values from last occurrence of given name. If successful, the values are converted to a double and stored in the std::vector<double> object ref. ref is resized (if necessary) to hold num_val values. The value in the list indexed by start_ix is copied into std::vector<double>[0], std::vector<double>[1] holds start_ix+1, etc. Returns 0 if the name does not exist. If there are fewer than start_ix + num_val values associated with the last occurrence, or if some of the values cannot be converted to a double, an error message is reported and the program halts.
References queryarr().
void ParmParse::getarr | ( | const char * | name, | |
Vector< std::string > & | ref, | |||
int | start_ix, | |||
int | num_val | |||
) | const [inline] |
Gets a std::vector<string> of num_val values from last occurrence of given name. If successful, the values are converted to a string and stored in the std::vector<string> object ref. ref is resized (if necessary) to hold num_val values. The value in the list indexed by start_ix is copied into std::vector<string>[0], std::vector<string>[1] holds start_ix+1, etc. If there are fewer than start_ix + num_val values associated with the last occurrence, or if some of the values cannot be converted to a string, an error message is reported and the program halts.
References getarr(), Vector< T >::resize(), and Vector< T >::size().
void ParmParse::getarr | ( | const char * | name, | |
std::vector< std::string > & | ref, | |||
int | start_ix, | |||
int | num_val | |||
) | const [inline] |
Gets a std::vector<string> of num_val values from last occurrence of given name. If successful, the values are converted to a string and stored in the std::vector<string> object ref. ref is resized (if necessary) to hold num_val values. The value in the list indexed by start_ix is copied into std::vector<string>[0], std::vector<string>[1] holds start_ix+1, etc. If there are fewer than start_ix + num_val values associated with the last occurrence, or if some of the values cannot be converted to a string, an error message is reported and the program halts.
References getarr().
int ParmParse::queryarr | ( | const char * | name, | |
Vector< std::string > & | ref, | |||
int | start_ix, | |||
int | num_val | |||
) | const [inline] |
Gets a std::vector<string> of num_val values from last occurrence of given name. If successful, the values are converted to a string and stored in the std::vector<string> object ref. ref is resized (if necessary) to hold num_val values. The value in the list indexed by start_ix is copied into std::vector<string>[0], std::vector<string>[1] holds start_ix+1, etc. Returns 0 if the name does not exist. If there are fewer than start_ix + num_val values associated with the last occurrence, or if some of the values cannot be converted to a string, an error message is reported and the program halts.
References queryarr(), Vector< T >::resize(), and Vector< T >::size().
int ParmParse::queryarr | ( | const char * | name, | |
std::vector< std::string > & | ref, | |||
int | start_ix, | |||
int | num_val | |||
) | const [inline] |
Gets a std::vector<string> of num_val values from last occurrence of given name. If successful, the values are converted to a string and stored in the std::vector<string> object ref. ref is resized (if necessary) to hold num_val values. The value in the list indexed by start_ix is copied into std::vector<string>[0], std::vector<string>[1] holds start_ix+1, etc. Returns 0 if the name does not exist. If there are fewer than start_ix + num_val values associated with the last occurrence, or if some of the values cannot be converted to a string, an error message is reported and the program halts.
References queryarr().
void ParmParse::getarr | ( | const char * | name, | |
Vector< bool > & | ref, | |||
int | start_ix, | |||
int | num_val | |||
) | const |
Gets a std::vector<bool> of num_val values from last occurrence of given name. If successful, the values are converted to a bool and stored in the std::vector<bool> object ref. ref is resized (if necessary) to hold num_val values. The value in the list indexed by start_ix is copied into std::vector<bool>[0], std::vector<bool>[1] holds start_ix+1, etc. If there are fewer than start_ix + num_val values associated with the last occurrence, or if some of the values cannot be converted to a bool, an error message is reported and the program halts.
void ParmParse::getarr | ( | const char * | name, | |
std::vector< bool > & | ref, | |||
int | start_ix, | |||
int | num_val | |||
) | const [inline] |
Gets a std::vector<bool> of num_val values from last occurrence of given name. If successful, the values are converted to a bool and stored in the std::vector<bool> object ref. ref is resized (if necessary) to hold num_val values. The value in the list indexed by start_ix is copied into std::vector<bool>[0], std::vector<bool>[1] holds start_ix+1, etc. If there are fewer than start_ix + num_val values associated with the last occurrence, or if some of the values cannot be converted to a bool, an error message is reported and the program halts.
References getarr().
int ParmParse::queryarr | ( | const char * | name, | |
Vector< bool > & | ref, | |||
int | start_ix, | |||
int | num_val | |||
) | const |
Gets a std::vector<bool> of num_val values from last occurrence of given name. If successful, the values are converted to a bool and stored in the std::vector<bool> object ref. ref is resized (if necessary) to hold num_val values. The value in the list indexed by start_ix is copied into std::vector<bool>[0], std::vector<bool>[1] holds start_ix+1, etc. Returns 0 if the name does not exist. If there are fewer than start_ix + num_val values associated with the last occurrence, or if some of the values cannot be converted to a bool, an error message is reported and the program halts.
int ParmParse::queryarr | ( | const char * | name, | |
std::vector< bool > & | ref, | |||
int | start_ix, | |||
int | num_val | |||
) | const [inline] |
Gets a std::vector<bool> of num_val values from last occurrence of given name. If successful, the values are converted to a bool and stored in the std::vector<bool> object ref. ref is resized (if necessary) to hold num_val values. The value in the list indexed by start_ix is copied into std::vector<bool>[0], std::vector<bool>[1] holds start_ix+1, etc. Returns 0 if the name does not exist. If there are fewer than start_ix + num_val values associated with the last occurrence, or if some of the values cannot be converted to a bool, an error message is reported and the program halts.
References queryarr().
const char* ParmParse::prefix | ( | ) | const [inline] |
return prefix
friend class PP_entry [friend] |
Referenced by countval().