|
tclap 1.4.0
|
A virtual base class that defines the essential data for all arguments. More...
#include <Arg.h>


Public Member Functions | |
| Arg & | addAlias (const std::string &flag, const std::string &name="") |
| Add equivalent spellings before registration. | |
| const std::vector< ArgAlias > & | aliases () const |
| Alias spellings in insertion order; no prefixes are stored. | |
| virtual | ~Arg () |
| Destructor. | |
| virtual void | addToList (std::list< Arg * > &argList) const |
| Adds this to the specified list of Args. | |
| char | getDelimiter () const |
| Returns this argument's parser delimiter, or the legacy default. | |
| virtual bool | processArg (int *i, std::vector< std::string > &args)=0 |
| Pure virtual method meant to handle the parsing and value assignment of the string on the command line. | |
| virtual bool | operator== (const Arg &a) const |
| Operator ==. | |
| bool | conflictsWith (const Arg &a) const |
| Checks declared registration conflicts: the same object, the same name, or the same nonempty short flag, including aliases. | |
| const std::string & | getFlag () const |
| Returns the argument flag. | |
| const std::string & | getName () const |
| Returns the argument name. | |
| std::string | getDescription () const |
| Returns the argument description. | |
| virtual void | setDescription (const std::string &desc) |
| Updates the argument description. | |
| std::string | getDescription (bool required) const |
| Returns the argument description. | |
| virtual bool | isRequired () const |
| Indicates whether the argument is required. | |
| bool | isValueRequired () const |
| Indicates whether a value must be specified for argument. | |
| bool | isSet () const |
| Indicates whether the argument has already been set. | |
| const std::string & | setBy () const |
| Returns the value specified to set this flag (like -a or –all). | |
| bool | isIgnoreable () const |
| Indicates whether the argument can be ignored, if desired. | |
| virtual bool | argMatches (const std::string &s) const |
| A method that tests whether a string matches this argument. | |
| virtual std::string | toString () const |
| Returns a simple string representation of the argument. | |
| virtual std::string | shortID (const std::string &valueId="val") const |
| Returns a short ID for the usage. | |
| virtual std::string | longID (const std::string &valueId="val") const |
| Returns a long ID for the usage. | |
| virtual void | trimFlag (std::string &flag, std::string &value) const |
| Trims a value off of the flag. | |
| bool | _hasBlanks (const std::string &s) const |
| Checks whether a given string has blank chars, indicating that it is a combined SwitchArg. | |
| virtual bool | allowMore () |
| Used for MultiArgs to determine whether args can still be set. | |
| virtual bool | acceptsMultipleValues () |
| Use by output classes to determine whether an Arg accepts multiple values. | |
| virtual void | reset () |
| Clears the Arg object and allows it to be reused by new command lines. | |
| virtual void | hideFromHelp (bool hide=true) |
| Hide this argument from the help output (e.g., when specifying the –help flag or on error. | |
| virtual bool | visibleInHelp () const |
| Returns true if this Arg is visible in the help output. | |
| virtual bool | hasLabel () const |
Static Public Member Functions | |
| static char | delimiter () |
| The delimiter that separates an argument flag/name from the value. | |
| static char | blankChar () |
| The char used as a place holder when SwitchArgs are combined. | |
| static char | flagStartChar () |
| static const std::string | flagStartString () |
| static const std::string | nameStartString () |
| static const std::string | ignoreNameString () |
| The name used to identify the ignore rest argument. | |
| static void | setDelimiter (char c) |
| Sets the legacy delimiter for unregistered arguments and static callers. | |
Protected Member Functions | |
| bool | matchesShortFlag (const std::string &flag) const |
| bool | matchesLongName (const std::string &name) const |
| void | _checkWithVisitor () const |
| Performs the special handling described by the Visitor. | |
| Arg (const std::string &flag, const std::string &name, const std::string &desc, bool req, bool valreq, Visitor *v=NULL) | |
| Primary constructor. | |
Protected Attributes | |
| std::string | _flag |
| The single char flag used to identify the argument. | |
| std::string | _name |
| A single word namd identifying the argument. | |
| std::string | _description |
| Description of the argument. | |
| const bool | _required |
| Indicating whether the argument is required. | |
| std::string | _requireLabel |
| Label to be used in usage description. | |
| bool | _valueRequired |
| Indicates whether a value is required for the argument. | |
| bool | _alreadySet |
| Indicates whether the argument has been set. | |
| std::string | _setBy |
| Indicates the value specified to set this flag (like -a or –all). | |
| Visitor * | _visitor |
| A pointer to a visitor object. | |
| bool | _ignoreable |
| Whether this argument can be ignored, if desired. | |
| bool | _acceptsMultipleValues |
| bool | _visibleInHelp |
| Indicates if the argument is visible in the help output (e.g., when specifying –help). | |
Friends | |
| class | CmdLine |
A virtual base class that defines the essential data for all arguments.
This class, or one of its existing children, must be subclassed to do anything.
|
inlineprotected |
Primary constructor.
YOU (yes you) should NEVER construct an Arg directly, this is a base class that is extended by various children that are meant to be used. Use SwitchArg, ValueArg, MultiArg, UnlabeledValueArg, or UnlabeledMultiArg instead.
| flag | - The flag identifying the argument. |
| name | - The name identifying the argument. |
| desc | - The description of the argument, used in the usage. |
| req | - Whether the argument is required. |
| valreq | - Whether the a value is required for the argument. |
| v | - The visitor checked by the argument. Defaults to NULL. |
Definition at line 527 of file Arg.h.
References _flag, _name, flagStartString(), ignoreNameString(), nameStartString(), and toString().

|
inlineprotected |
Performs the special handling described by the Visitor.
Definition at line 775 of file Arg.h.
References _visitor, and TCLAP::Visitor::visit().
Referenced by TCLAP::MultiSwitchArg::processArg().

|
inline |
Checks whether a given string has blank chars, indicating that it is a combined SwitchArg.
Implementation of _hasBlanks.
If so, return true, otherwise return false.
| s | - string to be checked. |
Definition at line 799 of file Arg.h.
References blankChar().

|
inlinevirtual |
Use by output classes to determine whether an Arg accepts multiple values.
Definition at line 815 of file Arg.h.
References _acceptsMultipleValues.
Referenced by TCLAP::DocBookOutput::printShortArg().
|
inline |
Add equivalent spellings before registration.
Either may be blank, but not both. Positional arguments cannot have aliases. Registration freezes aliases; reset() retains them. Values, callbacks and group membership are shared with the canonical argument. For self-registering constructors, use a non-registering constructor instead, add aliases, then call parser.add(arg).
Definition at line 699 of file Arg.h.
References hasLabel(), matchesLongName(), matchesShortFlag(), and toString().

|
inlinevirtual |
Adds this to the specified list of Args.
Overridden by Args that need to added to the end of the list.
| argList | - The list to add this to. |
Reimplemented in TCLAP::UnlabeledMultiArg< T >, and TCLAP::UnlabeledValueArg< T >.
Definition at line 809 of file Arg.h.
Referenced by TCLAP::CmdLine::Registration::add().
|
inline |
|
inlinevirtual |
Used for MultiArgs to determine whether args can still be set.
Reimplemented in TCLAP::MultiArg< T >.
|
inlinevirtual |
A method that tests whether a string matches this argument.
This is generally called by the processArg() method. This method could be re-implemented by a child to change how arguments are specified on the command line.
| s | - The string to be compared to the flag/name to determine whether the arg matches. |
Definition at line 755 of file Arg.h.
References _name, flagStartString(), matchesLongName(), matchesShortFlag(), and nameStartString().
Referenced by TCLAP::MultiSwitchArg::processArg(), and TCLAP::SwitchArg::processArg().

|
inlinestatic |
The char used as a place holder when SwitchArgs are combined.
Currently set to the bell char (ASCII 7).
Definition at line 247 of file Arg.h.
Referenced by TCLAP::CmdLine::_emptyCombined(), _hasBlanks(), and TCLAP::SwitchArg::combinedSwitchesMatch().
|
inline |
Checks declared registration conflicts: the same object, the same name, or the same nonempty short flag, including aliases.
Descriptions do not conflict. This nonvirtual rule also applies to custom arguments; additional tokens recognized by processArg() are not inferred.
| a | - The Arg to compare with this argument. |
Definition at line 730 of file Arg.h.
References _flag, _name, matchesLongName(), and matchesShortFlag().
Referenced by TCLAP::ArgGroup::add(), and TCLAP::StandaloneArgs::add().

|
inlinestatic |
The delimiter that separates an argument flag/name from the value.
Definition at line 234 of file Arg.h.
Referenced by getDelimiter().
|
inlinestatic |
Definition at line 256 of file Arg.h.
References TCLAP_FLAGSTARTCHAR.
Referenced by TCLAP::CmdLine::_emptyCombined(), and TCLAP::DocBookOutput::printShortArg().
|
inlinestatic |
Definition at line 266 of file Arg.h.
References TCLAP_FLAGSTARTSTRING.
Referenced by TCLAP::StdOutput::_shortUsage(), TCLAP::CmdLine::Registration::add(), Arg(), argMatches(), TCLAP::SwitchArg::combinedSwitchesMatch(), longID(), shortID(), toString(), and TCLAP::DocBookOutput::valueLabel().
|
inline |
Returns this argument's parser delimiter, or the legacy default.
Custom arguments should use this instead of the static delimiter().
Definition at line 239 of file Arg.h.
References delimiter().
Referenced by longID(), shortID(), and trimFlag().

|
inline |
Returns the argument description.
Definition at line 328 of file Arg.h.
References _required, and getDescription().
Referenced by getDescription(), TCLAP::UnlabeledMultiArg< T >::operator==(), and TCLAP::UnlabeledValueArg< T >::operator==().

|
inline |
Returns the argument description.
| required | if the argument should be treated as required when described. |
Definition at line 341 of file Arg.h.
References _description, and _requireLabel.
|
inline |
Returns the argument flag.
Definition at line 743 of file Arg.h.
References _flag.
Referenced by TCLAP::DocBookOutput::printShortArg(), and TCLAP::DocBookOutput::valueLabel().
|
inline |
Returns the argument name.
Definition at line 745 of file Arg.h.
References _name.
Referenced by TCLAP::ArgGroup::getName(), TCLAP::UnlabeledMultiArg< T >::longID(), TCLAP::UnlabeledValueArg< T >::longID(), TCLAP::UnlabeledMultiArg< T >::operator==(), TCLAP::UnlabeledValueArg< T >::operator==(), TCLAP::DocBookOutput::printShortArg(), TCLAP::UnlabeledMultiArg< T >::shortID(), TCLAP::UnlabeledValueArg< T >::shortID(), and TCLAP::DocBookOutput::valueLabel().
|
inlinevirtual |
Reimplemented in TCLAP::UnlabeledMultiArg< T >, and TCLAP::UnlabeledValueArg< T >.
Definition at line 445 of file Arg.h.
Referenced by addAlias(), TCLAP::DocBookOutput::printShortArg(), and TCLAP::DocBookOutput::printShortGroup().
|
inlinevirtual |
Hide this argument from the help output (e.g., when specifying the –help flag or on error.
Definition at line 438 of file Arg.h.
References _visibleInHelp.
|
inlinestatic |
|
inline |
Indicates whether the argument can be ignored, if desired.
Definition at line 753 of file Arg.h.
References _ignoreable.
|
inlinevirtual |
Indicates whether the argument is required.
Definition at line 747 of file Arg.h.
References _required.
Referenced by TCLAP::CmdLine::Registration::add(), TCLAP::ExclusiveArgGroup::add(), and TCLAP::DocBookOutput::printShortGroup().
|
inline |
Indicates whether the argument has already been set.
Only true if the arg has been matched on the command line.
Definition at line 751 of file Arg.h.
References _alreadySet.
|
inline |
Indicates whether a value must be specified for argument.
Definition at line 749 of file Arg.h.
References _valueRequired.
Referenced by TCLAP::DocBookOutput::printShortArg().
|
inlinevirtual |
Returns a long ID for the usage.
| valueId | - The value used in the id. |
Reimplemented in TCLAP::UnlabeledMultiArg< T >, TCLAP::UnlabeledValueArg< T >, TCLAP::MultiSwitchArg, TCLAP::MultiArg< T >, and TCLAP::ValueArg< T >.
Definition at line 581 of file Arg.h.
References _flag, _name, _valueRequired, flagStartString(), getDelimiter(), and nameStartString().
Referenced by TCLAP::ArgGroup::add(), TCLAP::ExclusiveArgGroup::add(), TCLAP::StandaloneArgs::add(), TCLAP::MultiSwitchArg::longID(), TCLAP::MultiArg< T >::longID(), and TCLAP::ValueArg< T >::longID().

|
inlineprotected |
Definition at line 690 of file Arg.h.
References _name.
Referenced by addAlias(), argMatches(), and conflictsWith().
|
inlineprotected |
Definition at line 681 of file Arg.h.
References _flag.
Referenced by addAlias(), argMatches(), TCLAP::SwitchArg::combinedSwitchesMatch(), and conflictsWith().
|
inlinestatic |
Definition at line 275 of file Arg.h.
References TCLAP_NAMESTARTSTRING.
Referenced by TCLAP::CmdLine::Registration::add(), Arg(), argMatches(), TCLAP::StdOutput::failure(), longID(), TCLAP::DocBookOutput::printShortArg(), shortID(), toString(), and TCLAP::DocBookOutput::valueLabel().
|
inlinevirtual |
Operator ==.
Legacy equality operator, retained for source compatibility. Registration uses conflictsWith(), not this virtual comparison.
| a | - The Arg to be compared to this. |
Reimplemented in TCLAP::UnlabeledMultiArg< T >, and TCLAP::UnlabeledValueArg< T >.
|
pure virtual |
Pure virtual method meant to handle the parsing and value assignment of the string on the command line.
| i | - Pointer the the current argument in the list. |
| args | - Mutable list of strings. What is passed in from main. |
Implemented in TCLAP::MultiArg< T >, TCLAP::MultiSwitchArg, TCLAP::SwitchArg, TCLAP::UnlabeledMultiArg< T >, TCLAP::UnlabeledValueArg< T >, and TCLAP::ValueArg< T >.
|
inlinevirtual |
Clears the Arg object and allows it to be reused by new command lines.
Reimplemented in TCLAP::MultiArg< T >, TCLAP::MultiSwitchArg, TCLAP::SwitchArg, and TCLAP::ValueArg< T >.
Definition at line 817 of file Arg.h.
References _alreadySet.
Referenced by TCLAP::MultiArg< T >::reset(), TCLAP::MultiSwitchArg::reset(), TCLAP::SwitchArg::reset(), and TCLAP::ValueArg< T >::reset().
|
inline |
Returns the value specified to set this flag (like -a or –all).
Definition at line 364 of file Arg.h.
References _setBy.
Referenced by TCLAP::ExclusiveArgGroup::validate().
|
inlinestatic |
|
inlinevirtual |
|
inlinevirtual |
Returns a short ID for the usage.
| valueId | - The value used in the id. |
Reimplemented in TCLAP::UnlabeledMultiArg< T >, TCLAP::UnlabeledValueArg< T >, TCLAP::MultiSwitchArg, TCLAP::MultiArg< T >, and TCLAP::ValueArg< T >.
Definition at line 568 of file Arg.h.
References _flag, _name, _valueRequired, flagStartString(), getDelimiter(), and nameStartString().
Referenced by TCLAP::MultiSwitchArg::shortID(), TCLAP::MultiArg< T >::shortID(), TCLAP::ValueArg< T >::shortID(), and TCLAP::DocBookOutput::valueLabel().

|
inlinevirtual |
Returns a simple string representation of the argument.
Primarily for debugging.
Definition at line 765 of file Arg.h.
References _flag, _name, flagStartString(), and nameStartString().
Referenced by addAlias(), Arg(), and TCLAP::SwitchArg::processArg().

|
inlinevirtual |
Trims a value off of the flag.
Implementation of trimFlag.
| flag | - The string from which the flag and value will be trimmed. Contains the flag once the value has been trimmed. |
| value | - Where the value trimmed from the string will be stored. |
Definition at line 782 of file Arg.h.
References getDelimiter().

|
inlinevirtual |
Returns true if this Arg is visible in the help output.
Definition at line 443 of file Arg.h.
References _visibleInHelp.
Referenced by TCLAP::DocBookOutput::printLongArg(), and TCLAP::DocBookOutput::printShortGroup().
|
protected |
Definition at line 177 of file Arg.h.
Referenced by acceptsMultipleValues(), TCLAP::MultiArg< T >::MultiArg(), TCLAP::MultiArg< T >::MultiArg(), TCLAP::MultiArg< T >::MultiArg(), and TCLAP::MultiArg< T >::MultiArg().
|
protected |
Indicates whether the argument has been set.
Indicates that a value on the command line has matched the name/flag of this argument and the values have been set accordingly.
Definition at line 158 of file Arg.h.
Referenced by isSet(), TCLAP::MultiSwitchArg::processArg(), and reset().
|
protected |
Description of the argument.
Definition at line 133 of file Arg.h.
Referenced by getDescription(), and setDescription().
|
protected |
The single char flag used to identify the argument.
This value (preceded by a dash {-}), can be used to identify an argument on the command line. The _flag can be blank, in fact this is how unlabeled args work. Unlabeled args must override appropriate functions to get correct handling. Note that the _flag does NOT include the dash as part of the flag.
Definition at line 119 of file Arg.h.
Referenced by Arg(), conflictsWith(), getFlag(), longID(), matchesShortFlag(), operator==(), shortID(), and toString().
|
protected |
Whether this argument can be ignored, if desired.
Definition at line 175 of file Arg.h.
Referenced by isIgnoreable(), TCLAP::UnlabeledMultiArg< T >::UnlabeledMultiArg(), TCLAP::UnlabeledMultiArg< T >::UnlabeledMultiArg(), TCLAP::UnlabeledMultiArg< T >::UnlabeledMultiArg(), TCLAP::UnlabeledMultiArg< T >::UnlabeledMultiArg(), TCLAP::UnlabeledValueArg< T >::UnlabeledValueArg(), TCLAP::UnlabeledValueArg< T >::UnlabeledValueArg(), TCLAP::UnlabeledValueArg< T >::UnlabeledValueArg(), and TCLAP::UnlabeledValueArg< T >::UnlabeledValueArg().
|
protected |
A single word namd identifying the argument.
This value (preceded by two dashed {–}) can also be used to identify an argument on the command line. Note that the _name does NOT include the two dashes as part of the _name. The _name cannot be blank.
Definition at line 128 of file Arg.h.
Referenced by Arg(), argMatches(), conflictsWith(), getName(), longID(), matchesLongName(), operator==(), shortID(), and toString().
|
protected |
Indicating whether the argument is required.
Definition at line 138 of file Arg.h.
Referenced by getDescription(), and isRequired().
|
protected |
Label to be used in usage description.
Normally set to "required", but can be changed when necessary.
Definition at line 144 of file Arg.h.
Referenced by getDescription().
|
protected |
Indicates the value specified to set this flag (like -a or –all).
Definition at line 162 of file Arg.h.
Referenced by TCLAP::SwitchArg::combinedSwitchesMatch(), TCLAP::MultiSwitchArg::processArg(), TCLAP::SwitchArg::processArg(), and setBy().
|
protected |
Indicates whether a value is required for the argument.
Note that the value may be required but the argument/value combination may not be, as specified by _required.
Definition at line 151 of file Arg.h.
Referenced by isValueRequired(), longID(), and shortID().
|
protected |
Indicates if the argument is visible in the help output (e.g., when specifying –help).
Definition at line 183 of file Arg.h.
Referenced by hideFromHelp(), and visibleInHelp().
|
protected |
A pointer to a visitor object.
The visitor allows special handling to occur as soon as the argument is matched. This defaults to NULL and should not be used unless absolutely necessary.
Definition at line 170 of file Arg.h.
Referenced by _checkWithVisitor().