Gromacs  2016.4
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
List of all members | Public Member Functions | Protected Member Functions
gmx::OptionInfo Class Reference

#include <gromacs/options/abstractoption.h>

+ Inheritance diagram for gmx::OptionInfo:

Description

Gives information and allows modifications to an option after creation.

When an option is added with Options::addOption(), an object of a subclass of OptionInfo is returned. This object can be later used to access information about the option. Non-const methods also allow later changing (some of) the option settings provided at initialization time. The properties accessible/modifiable through this interface are implemented based on need, and may not be implemented for all cases.

This class is also used by OptionsVisitor and OptionsModifyingVisitor as the interface that allows querying/modifying each visited option.

This class isolates the details of the internal option implementation from callers. Although this class is a simple reference to the underlying implementation, it is implemented as non-copyable to allow const/non-const status of a reference to this class to indicate whether modifications are allowed. Otherwise, separate classes would be needed for access and modification, complicating the implementation. In the implementation, there is always a single OptionInfo instance referring to one option. The underlying implementation object always owns this instance, and only references are passed to callers.

See Also
Options::addOption()
OptionsVisitor
OptionsModifyingVisitor

Public Member Functions

template<class InfoType >
bool isType () const
 Test whether the option is of a particular type. More...
 
template<class InfoType >
InfoType * toType ()
 Convert the info object to a particular type if the type is correct. More...
 
template<class InfoType >
const InfoType * toType () const
 Convert the info object to a particular type if the type is correct. More...
 
bool isSet () const
 Returns true if the option has been set.
 
bool isHidden () const
 Returns true if the option is a hidden option.
 
bool isRequired () const
 Returns true if the option is required.
 
int minValueCount () const
 Returns the minimum number of values that this option accepts.
 
int maxValueCount () const
 Returns the maximum number of values that this option accepts.
 
const std::string & name () const
 Returns the name of the option.
 
std::string type () const
 Returns the type of the option as a string.
 
std::string formatDescription () const
 Returns the description of the option.
 
std::string formatDefaultValueIfSet () const
 Returns the default value if set for the option as a string. More...
 
int valueCount () const
 Returns the number of values given for the option.
 
std::string formatValue (int i) const
 Returns the i'th value of the option as a string.
 

Protected Member Functions

 OptionInfo (AbstractOptionStorage *option)
 Wraps a given option object. More...
 
AbstractOptionStorageoption ()
 Returns the wrapped option storage object.
 
const AbstractOptionStorageoption () const
 Returns the wrapped option storage object.
 

Constructor & Destructor Documentation

gmx::OptionInfo::OptionInfo ( AbstractOptionStorage option)
explicitprotected

Wraps a given option object.

Does not throw.

Member Function Documentation

std::string gmx::OptionInfo::formatDefaultValueIfSet ( ) const

Returns the default value if set for the option as a string.

See Also
OptionTemplate::defaultValueIfSet()
template<class InfoType >
bool gmx::OptionInfo::isType ( ) const
inline

Test whether the option is of a particular type.

Template Parameters
InfoTypeOption type to test for. Should be a class derived from OptionInfo.
template<class InfoType >
InfoType* gmx::OptionInfo::toType ( )
inline

Convert the info object to a particular type if the type is correct.

Template Parameters
InfoTypeOption type to convert to. Should be a class derived from OptionInfo.
Return values
thisconverted to a pointer to InfoType, or NULL if the conversion is not possible.
template<class InfoType >
const InfoType* gmx::OptionInfo::toType ( ) const
inline

Convert the info object to a particular type if the type is correct.

Template Parameters
InfoTypeOption type to convert to. Should be a class derived from OptionInfo.
Return values
thisconverted to a pointer to InfoType, or NULL if the conversion is not possible.

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