10#ifndef TEUCHOS_PARAMETER_ENTRY_H
11#define TEUCHOS_PARAMETER_ENTRY_H
20#include "Teuchos_ParameterEntryValidator.hpp"
24#ifndef DOXYGEN_SHOULD_SKIP_THIS
59 template <
typename T,
typename = std::enable_if_t< ! std::is_same_v<std::decay_t<T>, ParameterEntry>>>
141 const any&
getAny(
bool activeQry =
true)
const;
156 template <
typename T>
188 std::ostream&
leftshift(std::ostream& os,
bool printFlags =
true)
const;
194 static const std::string tagName =
"Parameter";
209 mutable bool isUsed_;
212 mutable bool isDefault_;
215 std::string docString_;
221#pragma warning(disable:4251)
238 return entry.
getValue(
static_cast<T*
>(0));
249 return entry->getValue(
static_cast<T*
>(0));
270 return !( e1 == e2 );
286template<
typename T,
typename>
292 const std::string &docString_in,
295 : val_(std::forward<T>(value_in)),
297 isDefault_(isDefault_in),
298 docString_(docString_in),
299 validator_(validator_in)
308 T value_in,
bool isDefault_in,
const std::string &docString_in,
313 isDefault_ = isDefault_in;
314 if(docString_in.length())
315 docString_ = docString_in;
316 if(validator_in.
get())
317 validator_ = validator_in;
333 if (activeQry ==
true) {
342 if (activeQry ==
true) {
357{
return val_.
type() ==
typeid(T); }
361{
return isDefault_; }
365{
return docString_; }
370{
return validator_; }
Teuchos header file which uses auto-configuration information to include necessary C++ headers.
Reference-counted pointer class and non-member templated function implementations.
Modified boost::any class for holding a templated value.
void setValidator(RCP< const ParameterEntryValidator > const &validator)
Set the validator.
unsigned int ParameterEntryID
bool isType() const
Test the type of the data being contained.
bool isUsed() const
Return whether or not the value has been used; i.e., whether or not the value has been retrieved via ...
any & getAny(bool activeQry=true)
Direct access to the Teuchos::any data value underlying this object. The bool argument activeQry (def...
T & getValue(T *ptr) const
Templated get method that uses the input pointer type to determine the type of parameter to return.
ParameterList & setList(bool isDefault=false, const std::string &docString="")
Create a parameter entry that is an empty list.
ParameterEntry & operator=(const ParameterEntry &source)
Replace the current parameter entry with source.
RCP< const ParameterEntryValidator > validator() const
Return the (optional) validator object.
ParameterEntry()
Default Constructor.
bool isTwoDArray() const
Test if the type of data being contained is a Teuchos::TwoDArray.
void setValue(T value, bool isDefault=false, const std::string &docString="", RCP< const ParameterEntryValidator > const &validator=null)
Templated set method that uses the input value type to determine the type of parameter.
T & getValue(const ParameterEntry &entry)
A templated helper function for returning the value of type T held in the ParameterEntry object,...
bool operator==(const ParameterEntry &e1, const ParameterEntry &e2)
Returns true if two ParameterEntry objects are equal.
bool isArray() const
Test if the type of data being contained is a Teuchos::Array.
std::ostream & leftshift(std::ostream &os, bool printFlags=true) const
Output a non-list parameter to the given output stream.
void setDocString(const std::string &docString)
Set the documentation std::string.
std::string docString() const
Return the (optional) documentation std::string.
bool isList() const
Return whether or not the value itself is a list.
bool operator!=(const ParameterEntry &e1, const ParameterEntry &e2)
Returns true if two ParameterEntry objects are not equal.
void setAnyValue(const any &value, bool isDefault=false)
Set the value as an any object.
T & getValue(RCP< const ParameterEntry > entry)
A templated helper function for returning the value of type T held in the ParameterEntry object,...
std::ostream & operator<<(std::ostream &os, const ParameterEntry &e)
Output stream operator for handling the printing of parameter entries.
static const std::string & getTagName()
Get the string that should be used as the tag name for all parameters when they are serialized to xml...
bool isDefault() const
Indicate whether this entry takes on the default value.
A list of parameters of arbitrary type.
Ptr< T > ptr(T *p)
Create a pointer to an object from a raw pointer.
Smart reference counting pointer class for automatic garbage collection.
T * get() const
Get the raw C++ pointer to the underlying object.
Modified boost::any class, which is a container for a templated value.
ValueType & any_cast(any &operand)
Used to extract the templated value held in Teuchos::any to a given value type.
const std::type_info & type() const
Return the type of value being stored.
The Teuchos namespace contains all of the classes, structs and enums used by Teuchos,...