Ipopt  3.12.9
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
IpOptionsList.hpp
Go to the documentation of this file.
1 // Copyright (C) 2004, 2006 International Business Machines and others.
2 // All Rights Reserved.
3 // This code is published under the Eclipse Public License.
4 //
5 // $Id: IpOptionsList.hpp 2613 2015-11-04 14:42:02Z stefan $
6 //
7 // Authors: Carl Laird, Andreas Waechter IBM 2004-08-13
8 
9 #ifndef __IPOPTLIST_HPP__
10 #define __IPOPTLIST_HPP__
11 
12 #include "IpUtils.hpp"
13 #include "IpReferenced.hpp"
14 #include "IpException.hpp"
15 #include "IpRegOptions.hpp"
16 
17 #include <iostream>
18 #include <map>
19 
20 namespace Ipopt
21 {
23  DECLARE_STD_EXCEPTION(OPTION_INVALID);
24 
33  {
37  {
38  public:
43  :
44  initialized_(false)
45  {}
46 
48  OptionValue(std::string value, bool allow_clobber, bool dont_print)
49  :
50  value_(value),
51  counter_(0),
52  initialized_(true),
53  allow_clobber_(allow_clobber),
54  dont_print_(dont_print)
55  {}
56 
58  OptionValue(const OptionValue& copy)
59  :
60  value_(copy.value_),
61  counter_(copy.counter_),
65  {}
66 
68  void operator=(const OptionValue& copy)
69  {
70  value_=copy.value_;
71  counter_=copy.counter_;
75  }
76 
79  {}
81 
84  std::string GetValue() const
85  {
87  counter_++;
88  return value_;
89  }
90 
93  std::string Value() const
94  {
96  return value_;
97  }
98 
100  Index Counter() const
101  {
103  return counter_;
104  }
105 
107  bool AllowClobber() const
108  {
110  return allow_clobber_;
111  }
112 
115  bool DontPrint() const
116  {
118  return dont_print_;
119  }
120 
121  private:
123  std::string value_;
124 
126  mutable Index counter_;
127 
130 
133 
137  };
138 
139  public:
143  : reg_options_(reg_options), jnlst_(jnlst)
144  {}
145 
147  {}
148 
151  {
152  // copy all the option strings and values
153  options_ = copy.options_;
154  // copy the registered options pointer
155  reg_options_ = copy.reg_options_;
156  }
157 
159  virtual ~OptionsList()
160  {}
161 
163  virtual void operator=(const OptionsList& source)
164  {
165  options_ = source.options_;
166  reg_options_ = source.reg_options_;
167  jnlst_ = source.jnlst_;
168  }
170 
172  virtual void clear()
173  {
174  options_.clear();
175  }
176 
179  virtual void SetRegisteredOptions(const SmartPtr<RegisteredOptions> reg_options)
180  {
181  reg_options_ = reg_options;
182  }
183  virtual void SetJournalist(const SmartPtr<Journalist> jnlst)
184  {
185  jnlst_ = jnlst;
186  }
188 
190  virtual bool SetStringValue(const std::string& tag, const std::string& value,
191  bool allow_clobber = true, bool dont_print = false);
192  virtual bool SetNumericValue(const std::string& tag, Number value,
193  bool allow_clobber = true, bool dont_print = false);
194  virtual bool SetIntegerValue(const std::string& tag, Index value,
195  bool allow_clobber = true, bool dont_print = false);
197 
201  virtual bool SetStringValueIfUnset(const std::string& tag, const std::string& value,
202  bool allow_clobber = true, bool dont_print = false);
203  virtual bool SetNumericValueIfUnset(const std::string& tag, Number value,
204  bool allow_clobber = true, bool dont_print = false);
205  virtual bool SetIntegerValueIfUnset(const std::string& tag, Index value,
206  bool allow_clobber = true, bool dont_print = false);
208 
213  virtual bool GetStringValue(const std::string& tag, std::string& value,
214  const std::string& prefix) const;
215  virtual bool GetEnumValue(const std::string& tag, Index& value,
216  const std::string& prefix) const;
217  virtual bool GetBoolValue(const std::string& tag, bool& value,
218  const std::string& prefix) const;
219  virtual bool GetNumericValue(const std::string& tag, Number& value,
220  const std::string& prefix) const;
221  virtual bool GetIntegerValue(const std::string& tag, Index& value,
222  const std::string& prefix) const;
224 
226  virtual void PrintList(std::string& list) const;
227 
231  virtual void PrintUserOptions(std::string& list) const;
232 
235  virtual bool ReadFromStream(const Journalist& jnlst, std::istream& is, bool allow_clobber = false);
236 
237  private:
247  // OptionsList();
248 
250 
252  std::map< std::string, OptionValue > options_;
253 
256 
259 
262  const std::string& lowercase(const std::string tag) const;
263 
270  bool find_tag(const std::string& tag, const std::string& prefix,
271  std::string& value) const;
272 
277  bool will_allow_clobber(const std::string& tag) const;
278 
281  bool readnexttoken(std::istream& is, std::string& token);
282 
284  mutable std::string lowercase_buffer_;
285  };
286 
287 } // namespace Ipopt
288 
289 #endif
std::string Value() const
Method for retrieving the value without increasing the counter.
virtual bool GetEnumValue(const std::string &tag, Index &value, const std::string &prefix) const
virtual bool SetNumericValue(const std::string &tag, Number value, bool allow_clobber=true, bool dont_print=false)
virtual void SetJournalist(const SmartPtr< Journalist > jnlst)
OptionValue(std::string value, bool allow_clobber, bool dont_print)
Constructor given the value.
virtual void PrintUserOptions(std::string &list) const
Get a string with the list of all options set by the user (tag, value, use/notused).
virtual bool SetIntegerValue(const std::string &tag, Index value, bool allow_clobber=true, bool dont_print=false)
std::map< std::string, OptionValue > options_
Default Constructor.
OptionValue(const OptionValue &copy)
Copy Constructor.
virtual bool GetBoolValue(const std::string &tag, bool &value, const std::string &prefix) const
virtual bool ReadFromStream(const Journalist &jnlst, std::istream &is, bool allow_clobber=false)
Read options from the stream is.
double Number
Type of all numbers.
Definition: IpTypes.hpp:17
bool find_tag(const std::string &tag, const std::string &prefix, std::string &value) const
auxilliary method for finding the value for a tag in the options list.
virtual bool GetStringValue(const std::string &tag, std::string &value, const std::string &prefix) const
virtual void operator=(const OptionsList &source)
Overloaded Equals Operator.
virtual bool SetIntegerValueIfUnset(const std::string &tag, Index value, bool allow_clobber=true, bool dont_print=false)
~OptionValue()
Default Destructor.
bool dont_print_
True if this option is not to show up in the print_user_options output.
virtual void PrintList(std::string &list) const
Get a string with the list of all options (tag, value, counter)
OptionsList(const OptionsList &copy)
Copy Constructor.
Template class for Smart Pointers.
Definition: IpSmartPtr.hpp:172
ReferencedObject class.
This class stores a list of user set options.
bool readnexttoken(std::istream &is, std::string &token)
read the next token from stream is.
Index counter_
Counter for requests.
OptionsList(SmartPtr< RegisteredOptions > reg_options, SmartPtr< Journalist > jnlst)
bool AllowClobber() const
True if the option can be overwritten.
bool allow_clobber_
True if the option can be overwritten.
Index Counter() const
Method for accessing current value of the request counter.
virtual bool SetStringValueIfUnset(const std::string &tag, const std::string &value, bool allow_clobber=true, bool dont_print=false)
bool will_allow_clobber(const std::string &tag) const
tells whether or not we can clobber a particular option.
virtual bool SetStringValue(const std::string &tag, const std::string &value, bool allow_clobber=true, bool dont_print=false)
std::string lowercase_buffer_
auxilliary string set by lowercase method
int Index
Type of all indices of vectors, matrices etc.
Definition: IpTypes.hpp:19
#define DBG_ASSERT(test)
Definition: IpDebug.hpp:38
bool DontPrint() const
True if this option is not to show up in the print_user_options output.
DECLARE_STD_EXCEPTION(SUFFIX_EMPTY)
virtual bool GetNumericValue(const std::string &tag, Number &value, const std::string &prefix) const
virtual void SetRegisteredOptions(const SmartPtr< RegisteredOptions > reg_options)
Class for storing the value and counter for each option in OptionsList.
Class responsible for all message output.
virtual ~OptionsList()
Default destructor.
virtual bool SetNumericValueIfUnset(const std::string &tag, Number value, bool allow_clobber=true, bool dont_print=false)
std::string GetValue() const
Method for retrieving the value of an option.
SmartPtr< Journalist > jnlst_
Journalist for writing error messages, etc.
virtual bool GetIntegerValue(const std::string &tag, Index &value, const std::string &prefix) const
const std::string & lowercase(const std::string tag) const
auxilliary method for converting sting to all lower-case letters
OptionValue()
Default constructor (needed for the map)
void operator=(const OptionValue &copy)
Equals operator.
SmartPtr< RegisteredOptions > reg_options_
list of all the registered options to validate against
std::string value_
Value for this option.
virtual void clear()
Method for clearing all previously set options.