---
name: "CommandOption"
section: "3cc"
platform: "linux"
package: "libcommoncpp2-dev"
version: "1.0.13-5"
release: "Debian 3.1 (Sarge)"
platforms: ["linux"]
url: "https://new.carta.tech/CommandOption"
---

# CommandOption(3cc)

CommandOption is the base class for all command line options.

## NAME

CommandOption - CommandOption is the base class for all command line options.

## SYNOPSIS

`#include <cmdoptns.h>`

Inherited by **CommandOptionNoArg**, and **CommandOptionWithArg**.

### Public Types

enum **OptionType** { **hasArg**, **noArg**, **trailing**, **collect** }\
 *OptionType is for denoting what type of option this is, with an arg, without an arg or the trailing args. Option type.*

### Public Methods

virtual **~CommandOption** ()\
 *A virtual destructor just in case.* **CommandOption** (const char \*inOptionName, const char \*inOptionLetter, const char \*inDescription, **OptionType** inOptionType, bool inRequired=false, CommandOption \*\*ppNext=&**defaultCommandOptionList**)\
 *CommandOption contructor.* virtual void **foundOption** (**CommandOptionParse** \*cop, const char \*value=0)\
 *foundOption is called by the* **CommandOptionParse** *object during the parsing of the command line options.* virtual void **foundOption** (**CommandOptionParse** \*cop, const char \*\*value, int num)\
 *foundOption is called by the* **CommandOptionParse** *object during the parsing of the command line options.* virtual void **parseDone** (**CommandOptionParse** \*cop)\
 *Once parsing of command line options is complete, this method is called.* virtual void **performTask** (**CommandOptionParse** \*cop)\
 *Once CommandOption objects have completed parsing and there are no errors they may have some specific tasks to perform.* virtual bool **hasValue** ()\
 *For fields with the required flag set, this method is used to determine if the Option has satisfied it's required status.*

### Public Attributes

const char \* **optionName**\
 *Long option name, these will be preceded with '--' on the command line.* const char \* **optionLetter**\
 *option letter, these will be preceded with '-' on the command line.* const char \* **description**\
 *A short description of the option for Usage messages.* **OptionType** **optionType**\
 *This command option's OptionType.* bool **required**\
 *True if this parameter is required.* CommandOption \* **next**\
 *This next CommandOption in this list of options or nil if no more options exist.*

## DETAILED DESCRIPTION

CommandOption is the base class for all command line options.

Command line options can be defined statically and used when constructing a command line parser onject using makeCommandOptionParse. This serves only as a base class to **CommandOptionWithArg**, **CommandOptionRest** or **CommandOptionNoArg** which can also be used to derive more complex classes or even entire applications.

**Author:**  Gianni Mariani \<gianni@mariani.ws\>

## MEMBER ENUMERATION DOCUMENTATION

### enum CommandOption::OptionType

OptionType is for denoting what type of option this is, with an arg, without an arg or the trailing args. Option type.

**Enumeration values:**

- *hasArg*

  *This option is associated with a value.*

- *noArg*

  *This option is a flag only.*

- *trailing*

  *Remaining of the command line arguments.*

- *collect*

  *Collect values that are not a value to an option.*

## CONSTRUCTOR & DESTRUCTOR DOCUMENTATION

### virtual CommandOption::~CommandOption ()` [virtual]`

*A virtual destructor just in case.*

### CommandOption::CommandOption (const char \* inOptionName, const char \* inOptionLetter, const char \* inDescription, OptionType inOptionType, bool inRequired = false, CommandOption \*\* ppNext = &defaultCommandOptionList)

*CommandOption contructor.*

*Note the default values for required and ppNext.*

**Parameters:**

- *inOptionName*

  *long option name*

- *inOptionLetter*

  *short letter name*

- *inDescription*

  *short description of the option*

- *inOptionType*

  *the type of this option*

- *inRequired*

  *true if option is required*

- *ppNext*

  *the linked list header*

## MEMBER FUNCTION DOCUMENTATION

### virtual void CommandOption::foundOption (CommandOptionParse \* cop, const char \*\* value, int num)` [virtual]`

*foundOption is called by the* **CommandOptionParse** *object during the parsing of the command line options.*

**Parameters:**

- *cop*

  *pointer to the command option parser*

- *value*

  *an array of values of this option*

- *num*

  *number of values in the array*

*Reimplemented in* **CommandOptionWithArg***.*

### virtual void CommandOption::foundOption (CommandOptionParse \* cop, const char \* value = 0)` [virtual]`

*foundOption is called by the* **CommandOptionParse** *object during the parsing of the command line options.*

**Parameters:**

- *cop*

  *pointer to the command option parser*

- *value*

  *the value of this option*

*Reimplemented in* **CommandOptionWithArg***, and* **CommandOptionNoArg***.*

### virtual bool CommandOption::hasValue ()` [virtual]`

*For fields with the required flag set, this method is used to determine if the Option has satisfied it's required status.*

*The default methods simply returns true if any values have been found. This could be specialized to return true based on some other criteria.*

*Reimplemented in* **CommandOptionWithArg***.*

### virtual void CommandOption::parseDone (CommandOptionParse \* cop)` [virtual]`

*Once parsing of command line options is complete, this method is called.*

*This can be used to perform last minute checks on the options collected.*

**Parameters:**

- *cop*

  *pointer to the command option parser*

### virtual void CommandOption::performTask (CommandOptionParse \* cop)` [virtual]`

*Once CommandOption objects have completed parsing and there are no errors they may have some specific tasks to perform.*

*PerformTask must return.*

**Parameters:**

- *cop*

  *pointer to the command option parser*

## MEMBER DATA DOCUMENTATION

### const char\* CommandOption::description

*A short description of the option for Usage messages.*

*e.g. Usage: mycommand : blah -f, --file \<DESCRIPTION here\>*

### CommandOption\* CommandOption::next

*This next CommandOption in this list of options or nil if no more options exist.*

### const char\* CommandOption::optionLetter

*option letter, these will be preceded with '-' on the command line.*

*e.g. -f foo.x*

### const char\* CommandOption::optionName

*Long option name, these will be preceded with '--' on the command line.*

*e.g. --file foo.x*

### OptionType CommandOption::optionType

*This command option's OptionType.*

### bool CommandOption::required

*True if this parameter is required.*

*If the parameter is not supplied and required is true, an error will be flagged in the option processor.*

## AUTHOR

*Generated automatically by Doxygen for CommonC++ from the source code.*
