AXOM
Axom provides a robust, flexible software infrastructure for the development of multi-physics applications and computational tools.
axom::inlet::VerifiableScalar Class Referenceabstract

Basic interface for verifiable scalar values of Inlet primitive type, namely int, double, bool, or std::string - implementations can use this directly (inlet::Field) or forward to all elements of a collection (inlet::AggregrateField) More...

#include </home/docs/checkouts/readthedocs.org/user_builds/axom/checkouts/develop/src/axom/inlet/VerifiableScalar.hpp>

Inheritance diagram for axom::inlet::VerifiableScalar:

Public Types

using Verifier = std::function< bool(const axom::inlet::Field &, std::vector< VerificationError > *errors)>
 

Public Member Functions

virtual ~VerifiableScalar ()=default
 
VerifiableScalaroperator= (const VerifiableScalar &)=delete
 
virtual VerifiableScalarrequired (bool isRequired=true)=0
 Set the required status of this object. More...
 
virtual bool isRequired () const =0
 Return the required status. More...
 
VerifiableScalarregisterVerifier (std::function< bool(const axom::inlet::Field &)> lambda)
 Registers the function object that will verify this object's contents during the verification stage. More...
 
virtual VerifiableScalarregisterVerifier (Verifier verifier)=0
 Registers the function object that will verify this object's contents during the verification stage. More...
 
virtual VerifiableScalardefaultValue (const std::string &value)=0
 Set the default value of this object. More...
 
virtual VerifiableScalardefaultValue (const char *value)=0
 Set the default value of this object. More...
 
virtual VerifiableScalardefaultValue (bool value)=0
 Set the default value of this object. More...
 
virtual VerifiableScalardefaultValue (int value)=0
 Set the default value of this object. More...
 
virtual VerifiableScalardefaultValue (double value)=0
 Set the default value of this object. More...
 
virtual VerifiableScalarrange (double startVal, double endVal)=0
 Set the range of this object. More...
 
virtual VerifiableScalarrange (int startVal, int endVal)=0
 Set the range of this object. More...
 
virtual VerifiableScalarvalidValues (const std::vector< int > &set)=0
 Set the valid values for this object. More...
 
virtual VerifiableScalarvalidValues (const std::vector< double > &set)=0
 Set the valid values for this object. More...
 
virtual VerifiableScalarvalidValues (const std::vector< std::string > &set)=0
 Set the valid values for this object. More...
 
virtual VerifiableScalarvalidValues (const std::initializer_list< const char * > &set)=0
 Set the valid values for this object. More...
 
virtual VerifiableScalarvalidValues (const std::initializer_list< int > &set)=0
 Set the valid values for this object. More...
 
virtual VerifiableScalarvalidValues (const std::initializer_list< double > &set)=0
 Set the valid values. More...
 
virtual bool verify (std::vector< VerificationError > *errors=nullptr) const =0
 Verifies the object to make sure it satisfies the imposed requirements. More...
 

Detailed Description

Basic interface for verifiable scalar values of Inlet primitive type, namely int, double, bool, or std::string - implementations can use this directly (inlet::Field) or forward to all elements of a collection (inlet::AggregrateField)

In practice this interface is used for the Field and AggregateField types. In addition to the ability to mark things as required and use user-defined lambdas (as in Verifiable), default values can be provided, as can ranges of valid values and discrete sets of valid values.

Member Typedef Documentation

◆ Verifier

using axom::inlet::VerifiableScalar::Verifier = std::function<bool(const axom::inlet::Field&, std::vector<VerificationError>* errors)>

A function which can verify the contents of the item being verified. It should report any errors via the INLET_VERIFICATION_WARNING macro, passing in the given array of errors.

Constructor & Destructor Documentation

◆ ~VerifiableScalar()

virtual axom::inlet::VerifiableScalar::~VerifiableScalar ( )
virtualdefault

Member Function Documentation

◆ operator=()

VerifiableScalar& axom::inlet::VerifiableScalar::operator= ( const VerifiableScalar )
delete

◆ required()

virtual VerifiableScalar& axom::inlet::VerifiableScalar::required ( bool  isRequired = true)
pure virtual

Set the required status of this object.

Set whether this object is required, or not, to be in the input file. The default behavior is to not be required.

Parameters
[in]isRequiredBoolean value of whether object is required
Returns
Reference to calling object, for chaining

Implemented in axom::inlet::Field, and axom::inlet::AggregateField.

◆ isRequired()

virtual bool axom::inlet::VerifiableScalar::isRequired ( ) const
pure virtual

Return the required status.

Return that this object is required, or not, to be in the input file. The default behavior is to not be required.

Returns
Boolean value of whether this object is required

Implemented in axom::inlet::AggregateField, and axom::inlet::Field.

◆ registerVerifier() [1/2]

VerifiableScalar& axom::inlet::VerifiableScalar::registerVerifier ( std::function< bool(const axom::inlet::Field &)>  lambda)

Registers the function object that will verify this object's contents during the verification stage.

Parameters
[in]lambdaThe function object.

◆ registerVerifier() [2/2]

virtual VerifiableScalar& axom::inlet::VerifiableScalar::registerVerifier ( Verifier  verifier)
pure virtual

Registers the function object that will verify this object's contents during the verification stage.

Parameters
[in]verifierThe function object.

Implemented in axom::inlet::AggregateField, and axom::inlet::Field.

◆ defaultValue() [1/5]

virtual VerifiableScalar& axom::inlet::VerifiableScalar::defaultValue ( const std::string &  value)
pure virtual

Set the default value of this object.

Set the default value for the object in the input file.

Parameters
[in]valueThe default string value
Returns
Reference to calling object for chaining

Implemented in axom::inlet::AggregateField, and axom::inlet::Field.

◆ defaultValue() [2/5]

virtual VerifiableScalar& axom::inlet::VerifiableScalar::defaultValue ( const char *  value)
pure virtual

Set the default value of this object.

Set the default value for the object in the input file.

Parameters
[in]valueThe default string value
Returns
Reference to calling object for chaining

Implemented in axom::inlet::AggregateField, and axom::inlet::Field.

◆ defaultValue() [3/5]

virtual VerifiableScalar& axom::inlet::VerifiableScalar::defaultValue ( bool  value)
pure virtual

Set the default value of this object.

Set the default value for the object in the input file.

Parameters
[in]valueThe default boolean value
Returns
Reference to calling object for chaining

Implemented in axom::inlet::AggregateField, and axom::inlet::Field.

◆ defaultValue() [4/5]

virtual VerifiableScalar& axom::inlet::VerifiableScalar::defaultValue ( int  value)
pure virtual

Set the default value of this object.

Set the default value for the object in the input file.

Parameters
[in]valueThe default integer value
Returns
Reference to calling object for chaining

Implemented in axom::inlet::AggregateField, and axom::inlet::Field.

◆ defaultValue() [5/5]

virtual VerifiableScalar& axom::inlet::VerifiableScalar::defaultValue ( double  value)
pure virtual

Set the default value of this object.

Set the default value for the object in the input file.

Parameters
[in]valueThe default double value
Returns
Reference to calling object for chaining

Implemented in axom::inlet::AggregateField, and axom::inlet::Field.

◆ range() [1/2]

virtual VerifiableScalar& axom::inlet::VerifiableScalar::range ( double  startVal,
double  endVal 
)
pure virtual

Set the range of this object.

Set the continuous range for the object in the input file.

Parameters
[in]startValThe start of the range
[in]endValThe end of the range
Returns
Reference to calling object for chaining

Implemented in axom::inlet::AggregateField, and axom::inlet::Field.

◆ range() [2/2]

virtual VerifiableScalar& axom::inlet::VerifiableScalar::range ( int  startVal,
int  endVal 
)
pure virtual

Set the range of this object.

Set the continuous range for the object in the input file.

Parameters
[in]startValThe start of the range
[in]endValThe end of the range
Returns
Reference to calling object for chaining

Implemented in axom::inlet::AggregateField, and axom::inlet::Field.

◆ validValues() [1/6]

virtual VerifiableScalar& axom::inlet::VerifiableScalar::validValues ( const std::vector< int > &  set)
pure virtual

Set the valid values for this object.

Parameters
[in]setAn vector containing the set of allowed integer values
Returns
Reference to calling object for chaining

Implemented in axom::inlet::AggregateField, and axom::inlet::Field.

◆ validValues() [2/6]

virtual VerifiableScalar& axom::inlet::VerifiableScalar::validValues ( const std::vector< double > &  set)
pure virtual

Set the valid values for this object.

Parameters
[in]setAn vector containing the set of allowed double values
Returns
Reference to calling object for chaining

Implemented in axom::inlet::AggregateField, and axom::inlet::Field.

◆ validValues() [3/6]

virtual VerifiableScalar& axom::inlet::VerifiableScalar::validValues ( const std::vector< std::string > &  set)
pure virtual

Set the valid values for this object.

Parameters
[in]setA vector containing the set of allowed string values
Returns
Reference to calling object for chaining

Implemented in axom::inlet::AggregateField, and axom::inlet::Field.

◆ validValues() [4/6]

virtual VerifiableScalar& axom::inlet::VerifiableScalar::validValues ( const std::initializer_list< const char * > &  set)
pure virtual

Set the valid values for this object.

Parameters
[in]setAn initializer list containing the set of allowed C-string values
Returns
Reference to calling object for chaining

Implemented in axom::inlet::AggregateField, and axom::inlet::Field.

◆ validValues() [5/6]

virtual VerifiableScalar& axom::inlet::VerifiableScalar::validValues ( const std::initializer_list< int > &  set)
pure virtual

Set the valid values for this object.

Parameters
[in]setAn initializer list containing the valid integer values
Returns
Reference to calling object for chaining

Implemented in axom::inlet::AggregateField, and axom::inlet::Field.

◆ validValues() [6/6]

virtual VerifiableScalar& axom::inlet::VerifiableScalar::validValues ( const std::initializer_list< double > &  set)
pure virtual

Set the valid values.

Parameters
[in]setAn initializer list containing the valid double values
Returns
Reference to calling object for chaining

Implemented in axom::inlet::AggregateField, and axom::inlet::Field.

◆ verify()

virtual bool axom::inlet::VerifiableScalar::verify ( std::vector< VerificationError > *  errors = nullptr) const
pure virtual

Verifies the object to make sure it satisfies the imposed requirements.

Parameters
[in]errorsAn optional vector of errors to append to in the case of verification failure

Ownership is not taken of errors, the raw pointer is only used for its optional reference semantics, as opposed to something like std::optional<std::reference_wrapper<T>>

Implemented in axom::inlet::AggregateField, and axom::inlet::Field.


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