queso-0.57.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 (const std::string &name, const T &defaultValue, const std::string &description)
 Call this to register an option with the parser. More...
 
void registerOption (const std::string &name, const std::string &description)
 For flags without values. Like a help message, for example. More...
 
template<class T >
void getOption (const std::string &name, T &value) const
 Get option name from the parser and set value to the parsed value. More...
 
template<>
void getOption (const std::string &name, std::set< unsigned int, std::less< unsigned int >, std::allocator< unsigned int > > &value) const
 
- 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.

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 {
41  queso_deprecated();
42 }
ScopedPtr< boost::program_options::options_description >::Type m_optionsDescription
ScopedPtr< boost::program_options::variables_map >::Type m_optionsMap
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.

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 {
51  queso_deprecated();
52 }
ScopedPtr< boost::program_options::options_description >::Type m_optionsDescription
ScopedPtr< boost::program_options::variables_map >::Type m_optionsMap
QUESO::BoostInputOptionsParser::~BoostInputOptionsParser ( )
virtual

Destructor.

Deletes m_optionsDescription

Definition at line 54 of file BoostInputOptionsParser.C.

55 {
56  queso_deprecated();
57  // Do nothing
58 }

Member Function Documentation

template<typename T >
void QUESO::BoostInputOptionsParser::getOption ( const std::string &  name,
T &  value 
) const

Get option name from the parser and set value to the parsed value.

Definition at line 108 of file BoostInputOptionsParser.C.

References m_scannedInputFile.

Referenced by QUESO::MLSamplingLevelOptions::getAllOptions(), QUESO::InfiniteDimensionalMCMCSamplerOptions::InfiniteDimensionalMCMCSamplerOptions(), QUESO::MLSamplingOptions::MLSamplingOptions(), and QUESO::OptimizerOptions::OptimizerOptions().

109 {
110  queso_deprecated();
111  if (m_scannedInputFile) {
112  value = (*m_optionsMap)[name].as<T>();
113  }
114 }
template<>
template void QUESO::BoostInputOptionsParser::getOption< std::set< unsigned int, std::less< unsigned int >, std::allocator< unsigned int > > > ( const std::string &  name,
std::set< unsigned int, std::less< unsigned int >, std::allocator< unsigned int > > &  value 
) const

Definition at line 118 of file BoostInputOptionsParser.C.

References m_scannedInputFile, and QUESO::MiscReadDoublesFromString().

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

Referenced by QUESO::MLSamplingLevelOptions::defineAllOptions(), QUESO::InfiniteDimensionalMCMCSamplerOptions::InfiniteDimensionalMCMCSamplerOptions(), QUESO::MLSamplingOptions::MLSamplingOptions(), and QUESO::OptimizerOptions::OptimizerOptions().

88 {
89  queso_deprecated();
90  m_optionsDescription->add_options()
91  (name.c_str(),
92  boost::program_options::value<T>()->default_value(defaultValue),
93  description.c_str());
94 }
ScopedPtr< boost::program_options::options_description >::Type m_optionsDescription
void QUESO::BoostInputOptionsParser::registerOption ( const std::string &  name,
const std::string &  description 
)

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

Definition at line 97 of file BoostInputOptionsParser.C.

References m_optionsDescription.

99 {
100  queso_deprecated();
101  m_optionsDescription->add_options()
102  (name.c_str(),
103  description.c_str());
104 }
ScopedPtr< boost::program_options::options_description >::Type m_optionsDescription
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, and m_scannedInputFile.

Referenced by QUESO::InfiniteDimensionalMCMCSamplerOptions::InfiniteDimensionalMCMCSamplerOptions(), QUESO::MLSamplingLevelOptions::MLSamplingLevelOptions(), QUESO::MLSamplingOptions::MLSamplingOptions(), QUESO::OptimizerOptions::OptimizerOptions(), and QUESO::MLSamplingLevelOptions::scanOptionsValues().

62 {
63  queso_deprecated();
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

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 156 of file BoostInputOptionsParser.C.

157 {
158  queso_deprecated();
159  os << *(parser.m_optionsDescription);
160  return os;
161 }

Member Data Documentation

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

Definition at line 96 of file BoostInputOptionsParser.h.

Referenced by scanInputFile().

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

Definition at line 98 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 99 of file BoostInputOptionsParser.h.

Referenced by scanInputFile().

bool QUESO::BoostInputOptionsParser::m_scannedInputFile
private

Definition at line 102 of file BoostInputOptionsParser.h.

Referenced by getOption(), and scanInputFile().


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

Generated on Sat Apr 22 2017 14:04:38 for queso-0.57.0 by  doxygen 1.8.5