queso-0.56.0
Public Member Functions | Protected Attributes | Private Attributes | Friends | List of all members
QUESO::BoostInputOptionsParser Class Reference

#include <BoostInputOptionsParser.h>

Inheritance diagram for QUESO::BoostInputOptionsParser:
Inheritance graph
[legend]
Collaboration diagram for QUESO::BoostInputOptionsParser:
Collaboration graph
[legend]

Public Member Functions

 BoostInputOptionsParser (const std::string &filename)
 Constructor that parses file filename. More...
 
 BoostInputOptionsParser ()
 Default constructor that sets m_filename to "". More...
 
virtual ~BoostInputOptionsParser ()
 Destructor. More...
 
void scanInputFile ()
 This is the method that parses the input file. More...
 
template<class T >
void registerOption (std::string name, T defaultValue, std::string description)
 Call this to register an option with the parser. More...
 
void registerOption (std::string name, std::string description)
 For flags without values. Like a help message, for example. More...
 
template<class T >
void getOption (std::string &name, T &value)
 Get option name from the parser and set value to the parsed value. More...
 
template<>
void getOption (std::string &name, std::set< unsigned int, std::less< unsigned int >, std::allocator< unsigned int > > &value)
 
- Public Member Functions inherited from QUESO::BaseInputOptionsParser
 BaseInputOptionsParser ()
 Default constructor. More...
 
virtual ~BaseInputOptionsParser ()
 Destructor. More...
 

Protected Attributes

const std::string m_filename
 
ScopedPtr
< boost::program_options::options_description >
::Type 
m_optionsDescription
 
ScopedPtr
< boost::program_options::variables_map >
::Type 
m_optionsMap
 

Private Attributes

bool m_scannedInputFile
 

Friends

std::ostream & operator<< (std::ostream &os, const BoostInputOptionsParser &parser)
 Helpful stream operator for printing the parser state. More...
 

Detailed Description

Definition at line 44 of file BoostInputOptionsParser.h.

Constructor & Destructor Documentation

QUESO::BoostInputOptionsParser::BoostInputOptionsParser ( const std::string &  filename)

Constructor that parses file filename.

Definition at line 34 of file BoostInputOptionsParser.C.

References queso_deprecated.

35  :
36  m_filename(filename),
37  m_optionsDescription(new boost::program_options::options_description("Input options")),
38  m_optionsMap(new boost::program_options::variables_map()),
39  m_scannedInputFile(false)
40 {
42 }
ScopedPtr< boost::program_options::options_description >::Type m_optionsDescription
ScopedPtr< boost::program_options::variables_map >::Type m_optionsMap
#define queso_deprecated()
Definition: Defines.h:134
QUESO::BoostInputOptionsParser::BoostInputOptionsParser ( )

Default constructor that sets m_filename to "".

The use-case that options are not read in from a file but are instead wholly provided by the user.

Definition at line 44 of file BoostInputOptionsParser.C.

References queso_deprecated.

45  :
46  m_filename(""),
47  m_optionsDescription(new boost::program_options::options_description("Input options")),
48  m_optionsMap(new boost::program_options::variables_map()),
49  m_scannedInputFile(false)
50 {
52 }
ScopedPtr< boost::program_options::options_description >::Type m_optionsDescription
ScopedPtr< boost::program_options::variables_map >::Type m_optionsMap
#define queso_deprecated()
Definition: Defines.h:134
QUESO::BoostInputOptionsParser::~BoostInputOptionsParser ( )
virtual

Destructor.

Deletes m_optionsDescription

Definition at line 54 of file BoostInputOptionsParser.C.

References queso_deprecated.

55 {
57  // Do nothing
58 }
#define queso_deprecated()
Definition: Defines.h:134

Member Function Documentation

template<typename T >
void QUESO::BoostInputOptionsParser::getOption ( std::string &  name,
T &  value 
)
template<>
template void QUESO::BoostInputOptionsParser::getOption< std::set< unsigned int, std::less< unsigned int >, std::allocator< unsigned int > > > ( std::string &  name,
std::set< unsigned int, std::less< unsigned int >, std::allocator< unsigned int > > &  value 
)

Definition at line 116 of file BoostInputOptionsParser.C.

References m_scannedInputFile, QUESO::MiscReadDoublesFromString(), and queso_deprecated.

117 {
119  if (m_scannedInputFile) {
120  // Clear before putting things in it
121  value.clear();
122 
123  // Get the option as a string
124  // DM: Why do it this way? Doesn't boost support vectors as input
125  // options?
126  std::vector<double> tmpVec(0, 0.0);
127  std::string optionValue;
128  this->getOption<std::string>(name, optionValue);
129  MiscReadDoublesFromString(optionValue, tmpVec);
130 
131  for (unsigned int i = 0; i < tmpVec.size(); i++) {
132  value.insert((unsigned int) tmpVec[i]); // Why cast?!
133  }
134  }
135 }
void MiscReadDoublesFromString(const std::string &inputString, std::vector< double > &outputDoubles)
Definition: Miscellaneous.C:40
#define queso_deprecated()
Definition: Defines.h:134
template<typename T >
void QUESO::BoostInputOptionsParser::registerOption ( std::string  name,
defaultValue,
std::string  description 
)

Call this to register an option with the parser.

The name of the option to look for in the input file is given by name is given by. If no option is present in the input file, then use defaultValue is used for the default value for the option. Describe the option with a helpful message using description.

Definition at line 85 of file BoostInputOptionsParser.C.

References m_optionsDescription, and queso_deprecated.

Referenced by QUESO::MLSamplingLevelOptions::defineAllOptions(), QUESO::EmOptionsValues::EmOptionsValues(), QUESO::EnvOptionsValues::EnvOptionsValues(), QUESO::GcmOptionsValues::GcmOptionsValues(), QUESO::GPMSAOptions::GPMSAOptions(), QUESO::InfiniteDimensionalMCMCSamplerOptions::InfiniteDimensionalMCMCSamplerOptions(), QUESO::McOptionsValues::McOptionsValues(), QUESO::MhOptionsValues::MhOptionsValues(), QUESO::MLSamplingOptions::MLSamplingOptions(), QUESO::OptimizerOptions::OptimizerOptions(), QUESO::SfpOptionsValues::SfpOptionsValues(), QUESO::SipOptionsValues::SipOptionsValues(), and QUESO::SmOptionsValues::SmOptionsValues().

87 {
89  m_optionsDescription->add_options()
90  (name.c_str(),
91  boost::program_options::value<T>()->default_value(defaultValue),
92  description.c_str());
93 }
ScopedPtr< boost::program_options::options_description >::Type m_optionsDescription
#define queso_deprecated()
Definition: Defines.h:134
void QUESO::BoostInputOptionsParser::registerOption ( std::string  name,
std::string  description 
)

For flags without values. Like a help message, for example.

Definition at line 96 of file BoostInputOptionsParser.C.

References m_optionsDescription, and queso_deprecated.

97 {
99  m_optionsDescription->add_options()
100  (name.c_str(),
101  description.c_str());
102 }
ScopedPtr< boost::program_options::options_description >::Type m_optionsDescription
#define queso_deprecated()
Definition: Defines.h:134
void QUESO::BoostInputOptionsParser::scanInputFile ( )

This is the method that parses the input file.

It parses the input file and sets the m_optionsMap member.

Definition at line 61 of file BoostInputOptionsParser.C.

References m_filename, m_optionsDescription, m_optionsMap, m_scannedInputFile, queso_deprecated, and queso_require_msg.

Referenced by QUESO::EmOptionsValues::EmOptionsValues(), QUESO::EnvOptionsValues::EnvOptionsValues(), QUESO::GcmOptionsValues::GcmOptionsValues(), QUESO::GPMSAOptions::GPMSAOptions(), QUESO::InfiniteDimensionalMCMCSamplerOptions::InfiniteDimensionalMCMCSamplerOptions(), QUESO::McOptionsValues::McOptionsValues(), QUESO::MhOptionsValues::MhOptionsValues(), QUESO::MLSamplingLevelOptions::MLSamplingLevelOptions(), QUESO::MLSamplingOptions::MLSamplingOptions(), QUESO::OptimizerOptions::OptimizerOptions(), QUESO::MLSamplingLevelOptions::scanOptionsValues(), QUESO::SfpOptionsValues::SfpOptionsValues(), QUESO::SipOptionsValues::SipOptionsValues(), and QUESO::SmOptionsValues::SmOptionsValues().

62 {
64  queso_require_msg(m_optionsDescription, "m_optionsDescription variable is NULL");
65 
66  // If it's the empty string then the defaults are used
67  if (m_filename != "") {
68  std::ifstream ifs;
69  ifs.open(m_filename.c_str());
70 
71  queso_require_msg(m_optionsMap, "m_allOptionsMap variable is NULL");
72  boost::program_options::store(
73  boost::program_options::parse_config_file(
74  ifs, *m_optionsDescription, true), *m_optionsMap);
75  boost::program_options::notify(*m_optionsMap);
76 
77  ifs.close();
78 
79  m_scannedInputFile = true;
80  }
81 }
ScopedPtr< boost::program_options::options_description >::Type m_optionsDescription
ScopedPtr< boost::program_options::variables_map >::Type m_optionsMap
#define queso_deprecated()
Definition: Defines.h:134
#define queso_require_msg(asserted, msg)
Definition: asserts.h:69

Friends And Related Function Documentation

std::ostream& operator<< ( std::ostream &  os,
const BoostInputOptionsParser parser 
)
friend

Helpful stream operator for printing the parser state.

Definition at line 154 of file BoostInputOptionsParser.C.

155 {
157  os << *(parser.m_optionsDescription);
158  return os;
159 }
#define queso_deprecated()
Definition: Defines.h:134

Member Data Documentation

const std::string QUESO::BoostInputOptionsParser::m_filename
protected

Definition at line 94 of file BoostInputOptionsParser.h.

Referenced by scanInputFile().

ScopedPtr<boost::program_options::options_description>::Type QUESO::BoostInputOptionsParser::m_optionsDescription
protected

Definition at line 96 of file BoostInputOptionsParser.h.

Referenced by QUESO::operator<<(), registerOption(), and scanInputFile().

ScopedPtr<boost::program_options::variables_map>::Type QUESO::BoostInputOptionsParser::m_optionsMap
protected

Definition at line 97 of file BoostInputOptionsParser.h.

Referenced by scanInputFile().

bool QUESO::BoostInputOptionsParser::m_scannedInputFile
private

Definition at line 100 of file BoostInputOptionsParser.h.

Referenced by getOption(), and scanInputFile().


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

Generated on Tue Nov 29 2016 10:53:13 for queso-0.56.0 by  doxygen 1.8.5