Class Arg
- Defined in File arg.hpp 
Inheritance Relationships
Derived Types
- public ecl::MultiArg< T >(Template Class MultiArg)
- public ecl::SwitchArg(Class SwitchArg)
- public ecl::ValueArg< T >(Template Class ValueArg)
Class Documentation
- 
class Arg
- Virtual parent for all the different argument classes. - 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. - Subclassed by ecl::MultiArg< T >, ecl::SwitchArg, ecl::ValueArg< T > - Public Functions - 
inline virtual ~Arg()
- Destructor. 
 - 
inline virtual void addToList(std::list<Arg*> &argList) const
- Adds this to the specified list of Args. - Overridden by Args that need to added to the end of the list. - Parameters:
- argList – - The list to add this to. 
 
 - 
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. - Parameters:
- i – - Pointer the the current argument in the list. 
- args – - Mutable list of strings. What is passed in from main. 
 
 
 - 
inline virtual bool operator==(const Arg &a) const
- Operator ==. Equality operator. Must be virtual to handle unlabeled args. - Parameters:
- a – - The Arg to be compared to this. 
 
 - 
inline const std::string &getFlag() const
- Returns the argument flag. 
 - 
inline const std::string &getName() const
- Returns the argument name. 
 - 
inline std::string getDescription() const
- Returns the argument description. 
 - 
inline virtual bool isRequired() const
- Indicates whether the argument is required. 
 - 
inline void forceRequired()
- Sets _required to true. This is used by the XorHandler. You really have no reason to ever use it. 
 - 
inline void xorSet()
- Sets the _alreadySet value to true. This is used by the XorHandler. You really have no reason to ever use it. 
 - 
inline bool isValueRequired() const
- Indicates whether a value must be specified for argument. 
 - 
inline bool isSet() const
- Indicates whether the argument has already been set. Only true if the arg has been matched on the command line. 
 - 
inline bool isIgnoreable() const
- Indicates whether the argument can be ignored, if desired. 
 - 
inline virtual bool argMatches(const std::string &s) const
- 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. - Parameters:
- s – - The string to be compared to the flag/name to determine whether the arg matches. 
 
 - 
inline virtual std::string toString() const
- Returns a simple string representation of the argument. Primarily for debugging. 
 - 
inline virtual std::string shortID(const std::string &valueId = "val") const
- Returns a short ID for the usage. - Parameters:
- valueId – - The value used in the id. 
 
 - 
inline virtual std::string longID(const std::string &valueId = "val") const
- Returns a long ID for the usage. - Parameters:
- valueId – - The value used in the id. 
 
 - 
inline virtual void trimFlag(std::string &flag, std::string &value) const
- Trims a value off of the flag. - Implementation of trimFlag. - Parameters:
- 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. 
 
 
 - 
inline bool _hasBlanks(const std::string &s) const
- Checks whether a given string has blank chars, indicating that it is a combined SwitchArg - . If so, return true, otherwise return false. - Implementation of _hasBlanks. - Parameters:
- s – - string to be checked. 
 
 - 
inline void setRequireLabel(const std::string &s)
- Sets the requireLabel. Used by XorHandler. You shouldn’t ever use this. - Parameters:
- s – - Set the requireLabel to this value. 
 
 - 
inline virtual bool allowMore()
 - 
inline virtual bool acceptsMultipleValues()
 - Public Static Functions - 
static inline void beginIgnoring()
- Begin ignoring arguments since the “–” argument was specified. 
 - 
static inline bool ignoreRest()
- Whether to ignore the rest. 
 - 
static inline char delimiter()
- The delimiter that separates an argument flag/name from the value. 
 - 
static inline char blankChar()
- The char used as a place holder when SwitchArgs are combined. Currently set to ‘*’, which shouldn’t cause many problems since *’s are expanded by most shells on the command line. 
 - 
static inline char flagStartChar()
- The char that indicates the beginning of a flag. Currently ‘-’. 
 - 
static inline std::string flagStartString()
- The sting that indicates the beginning of a flag. Currently “-”. Should be identical to flagStartChar. 
 - 
static inline std::string nameStartString()
- The sting that indicates the beginning of a name. Currently “–”. Should be flagStartChar twice. 
 - 
static inline std::string ignoreNameString()
- The name used to identify the ignore rest argument. 
 - 
static inline void setDelimiter(char c)
- Sets the delimiter for all arguments. - Parameters:
- c – - The character that delimits flags/names from values. 
 
 - Protected Functions - 
inline void _checkWithVisitor() const
- Performs the special handling described by the Vistitor. 
 - 
inline Arg(const std::string &flag, const std::string &name, const std::string &desc, bool req, bool valreq, Visitor *v = NULL)
- 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. - Parameters:
- 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. 
 
 
 - Protected Attributes - 
std::string _flag
- 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. 
 - 
std::string _name
- A single work namd indentifying 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. 
 - 
std::string _description
- Description of the argument. 
 - 
bool _required
- Indicating whether the argument is required. 
 - 
std::string _requireLabel
- Label to be used in usage description. Normally set to “required”, but can be changed when necessary. 
 - 
bool _valueRequired
- 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. 
 - 
bool _alreadySet
- 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. 
 - 
Visitor *_visitor
- A pointer to a vistitor 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. 
 - 
bool _ignoreable
- Whether this argument can be ignored, if desired. 
 - 
bool _xorSet
- Indicates that the arg was set as part of an XOR and not on the command line. 
 - 
bool _acceptsMultipleValues
 
- 
inline virtual ~Arg()