Gromacs
2024.4
|
#include <gromacs/options/basicoptions.h>
Specifies an option that accepts an EnumerationArray of string values and writes the selected index into an enum
variable.
EnumType | DataType of the variable that receives the values |
Examples:
storeCount() is not currently implemented for this option type, and providing multiple default values through an array passed to store() does not work consistently in all cases. In the current implementation, the values of the enum type should correspond to indices in the array passed to enumValue(), i.e., be consecutive starting from zero. Only values corresponding to valid indices are accepted as parameters to, e.g., defaultValue(). However, other values can be used as the initial value of the variable (value
in the above example), and those will be preserved if the option is not set.
Public methods in this class do not throw.
Public Types | |
typedef EnumOptionInfo | InfoType |
OptionInfo subclass corresponding to this option type. | |
typedef OptionTemplate < EnumType, EnumOption < EnumType > > | MyBase |
Short-hand for the base class. | |
typedef EnumType | ValueType |
Type that stores a single option value. | |
typedef EnumOption< EnumType > | MyClass |
Alias for the derived class type. | |
Public Member Functions | |
EnumOption (const char *name) | |
Initializes an option with the given name. | |
EnumOption & | enumValue (const EnumerationArray< EnumType, const char * > &values) |
Sets the option to only accept one of a fixed set of strings. More... | |
MyClass & | description (const char *descr) |
Sets a description for the option. More... | |
MyClass & | hidden (bool bHidden=true) |
Hides the option from normal help output. | |
MyClass & | required (bool bRequired=true) |
Requires the option to be specified explicitly. More... | |
MyClass & | allowMultiple (bool bMulti=true) |
Allows the option to be specified multiple times. | |
MyClass & | valueCount (int count) |
Requires exactly count values for the option. | |
MyClass & | multiValue (bool bMulti=true) |
Allows any number of values for the option. | |
MyClass & | defaultValue (const EnumType &defaultValue) |
Sets a default value for the option. More... | |
MyClass & | defaultValueIfSet (const EnumType &defaultValue) |
Sets a default value for the option when it is set. More... | |
MyClass & | store (EnumType *store) |
Stores value(s) in memory pointed by store . More... | |
MyClass & | storeCount (int *countptr) |
Stores number of values in the value pointed by countptr . More... | |
MyClass & | storeVector (std::vector< EnumType > *store) |
Stores option values in the provided vector. More... | |
MyClass & | storeIsSet (bool *store) |
Stores whether the option was explicitly set. More... | |
Protected Member Functions | |
const EnumType * | defaultValue () const |
Returns a pointer to user-specified default value, or NULL if there is none. | |
const EnumType * | defaultValueIfSet () const |
Returns a pointer to user-specified default value, or NULL if there is none. | |
EnumType * | store () const |
Returns a pointer to the storage location, or NULL if none specified. | |
std::vector< EnumType > * | storeVector () const |
Returns a pointer to the storage vector, or NULL if none specified. | |
MyClass & | me () |
Returns *this casted into MyClass to reduce typing. | |
void | setDescription (const char *descr) |
Sets the description for the option. | |
void | setStoreIsSet (bool *store) |
Sets the storage location for whether the option is set. | |
void | setFlag (OptionFlag flag) |
Sets a flag for the option. | |
void | setFlag (OptionFlag flag, bool bSet) |
Sets or clears a flag for the option. | |
void | clearFlag (OptionFlag flag) |
Clears a flag for the option. | |
bool | isVector () const |
Returns true if the option is vector-valued. | |
void | setVector () |
Sets the option to be vector-valued. More... | |
void | setValueCount (int count) |
Sets the required number of values for the option. | |
Protected Attributes | |
int | minValueCount_ |
Minimum number of values required for the option. | |
int | maxValueCount_ |
Maximum number of values allowed for the option. | |
Friends | |
class | EnumOptionStorage |
Needed to initialize EnumOptionStorage from this class without otherwise unnecessary accessors. | |
|
inlineinherited |
Sets a default value for the option.
[in] | defaultValue | Default value. |
If the option is never set, the default value is copied to the assigned storage. Note that if the option is not set and there is no default value, the storage is not altered, which can also be used to provide a default value. The latter method has to be used if the option can take multiple values.
defaultValue
is copied when the option is created.
|
inlineinherited |
Sets a default value for the option when it is set.
[in] | defaultValue | Default value. |
This value is used if the option is set, but no value is provided. If the option is never set, the value set with defaultValue() is used. Can only be used for options that accept a single value.
defaultValue
is copied when the option is created.
|
inlineinherited |
Sets a description for the option.
[in] | descr | Description to set. |
String in descr
is copied when the option is created.
|
inline |
Sets the option to only accept one of a fixed set of strings.
[in] | values | Array of strings to accept. |
Also accepts prefixes of the strings; if a prefix matches more than one of the possible strings, the shortest one is used (in a tie, the first one is).
The strings are copied once the option is created.
|
inlineinherited |
Requires the option to be specified explicitly.
Note that if you specify defaultValue() together with required(), the user is not required to explicitly provide the option. In this case, required() only affects possible help output.
|
inlineprotectedinherited |
Sets the option to be vector-valued.
This method is provided for convenience to make management of value counts easier. In order to implement a vector-valued option, the class derived from AbstractOption should expose a method that calls this method, and the storage object derived from AbstractOptionStorage should check isVector(). If only a single value is provided, the storage object should fill the whole vector with that value.
The length of the vector (the value of maxValueCount_) must be fixed. The default length is 3 elements.
|
inlineinherited |
Stores value(s) in memory pointed by store
.
[in] | store | Storage for option value(s). |
The caller is responsible for allocating enough memory such that the any allowed number of values fits into the array pointed by store
. If there is no maximum allowed number or if the maximum is inconveniently large, storeVector() should be used.
For information on when values are available in the storage, see storeVector().
The pointer provided should remain valid as long as the associated Options object exists.
|
inlineinherited |
Stores number of values in the value pointed by countptr
.
[in] | countptr | Storage for the number of values. |
For information on when values are available in the storage, see storeVector().
The pointers provided should remain valid as long as the associated Options object exists.
|
inlineinherited |
Stores whether the option was explicitly set.
[in] | store | Variable to store the flag in. |
The value is set to false
on creation of the option, and to true
as soon as a value is assigned to the option. A default value does not set the flag to true
, but assignment that uses defaultValueIfSet() does.
The pointer provided should remain valid as long as the associated Options object exists.
|
inlineinherited |
Stores option values in the provided vector.
[in] | store | Vector to store option values in. |
Values are added to the vector after each successful set of values is parsed. Note that for some options, the value may be changed later, and is only guaranteed to be correct after Options::finish() has been called.
The pointer provided should remain valid as long as the associated Options object exists.