claw::arguments Class Reference

A class to manage the arguments of your program. More...

`#include <arguments.hpp>`

## Public Member Functions

| arguments ()
| Constructor.
| arguments (const std::string &prog_name)
| Constructor.
| arguments (int &argc, char **&argv)
| Constructor.
| arguments (int &argc, char **&argv, const claw::math::ordered_set< std::string > &allowed)
| Constructor.
void | parse (int &argc, char **&argv)
| Parse arguments.
void | parse (int &argc, char **&argv, const claw::math::ordered_set< std::string > &allowed)
| Parse arguments.
bool | has_value (const std::string &arg_name) const
| Tell if a value is associated to an argument.
bool | only_integer_values (const std::string &arg_name) const
| Tell if only integer values are associated to an argument.
bool | only_real_values (const std::string &arg_name) const
| Tell if only real values are associated to an argument.
const std::string & | get_program_name () const
| Get the name of the program.
bool | get_bool (const std::string &arg_name) const
| Get the boolean state of an argument.
int | get_integer (const std::string &arg_name) const
| Get the integer value of an argument.
double | get_real (const std::string &arg_name) const
| Get the real value of an argument.
const std::string & | get_string (const std::string &arg_name) const
| Get the string value of an argument.
std::list< int > | get_all_of_integer (const std::string &arg_name) const
| Get all integer values of an argument.
std::list< double > | get_all_of_real (const std::string &arg_name) const
| Get all real values of an argument.
std::list< std::string > | get_all_of_string (const std::string &arg_name) const
| Get all string values of an argument.
void | add_argument (const std::string &arg)
| Add an argument in our list.

## Detailed Description

A class to manage the arguments of your program.

This class will handle all arguments of type -l[=val] or –long[=val].

Remarks
  None of those methods is allowed to use claw::logger because when we are processing the arguments, we are at the really begining of the program and claw::logger is probably not initialised.

Author
  Julien Jorge

Definition at line 50 of file arguments.hpp.

## Constructor & Destructor Documentation

## arguments() [1/4]

claw::arguments::arguments | ( |  | ) |

Constructor.

Definition at line 41 of file arguments.cpp.

References claw_gettext.

## arguments() [2/4]

claw::arguments::arguments | ( | const std::string & | prog_name | ) |

explicit

Constructor.

Parameters

  prog_name | Force the name of the program.

Definition at line 52 of file arguments.cpp.

## arguments() [3/4]

claw::arguments::arguments | ( | int & | argc,
|  | char **& | argv )

Constructor.

Parameters

  argc | Number of arguments.
  argv | Arguments.

You should construct an instance with the parameters given to your function main(). The constructor will remove all supported arguments from argv.

Definition at line 67 of file arguments.cpp.

References parse().

## arguments() [4/4]

claw::arguments::arguments | ( | int & | argc,
|  | char **& | argv,
|  | const claw::math::ordered_set< std::string > & | allowed )

Constructor.

Parameters

  argc | Number of arguments.
  argv | Arguments.
  allowed | The set of allowed arguments.

You should construct an instance with the parameters given to your function main(). The constructor will remove all supported arguments from argv.

Definition at line 82 of file arguments.cpp.

References parse().

## Member Function Documentation

## add_argument()

void claw::arguments::add_argument | ( | const std::string & | arg | ) |

Add an argument in our list.

You can use this method to set default values to the parameters of your program, before calling parse_arguments.

Parameters

  arg | The argument to add.

Precondition
  (arg != "--") && (arg[0] == '-')

Definition at line 325 of file arguments.cpp.

References CLAW_ASSERT, and has_value().

## get_all_of_integer()

std::list< int > claw::arguments::get_all_of_integer | ( | const std::string & | arg_name | ) | const

Get all integer values of an argument.

Parameters

  arg_name | The name of the argument to get.

Definition at line 248 of file arguments.cpp.

## get_all_of_real()

std::list< double > claw::arguments::get_all_of_real | ( | const std::string & | arg_name | ) | const

Get all real values of an argument.

Parameters

  arg_name | The name of the argument to get.

Definition at line 276 of file arguments.cpp.

## get_all_of_string()

std::list< std::string > claw::arguments::get_all_of_string | ( | const std::string & | arg_name | ) | const

Get all string values of an argument.

Parameters

  arg_name | The name of the argument to get.

Definition at line 304 of file arguments.cpp.

## get_bool()

bool claw::arguments::get_bool | ( | const std::string & | arg_name | ) | const

Get the boolean state of an argument.

Parameters

  arg_name | The name of the argument to get.

Definition at line 186 of file arguments.cpp.

## get_integer()

int claw::arguments::get_integer | ( | const std::string & | arg_name | ) | const

Get the integer value of an argument.

Parameters

  arg_name | The name of the argument to get.

Precondition
  has_value(arg_name)

Definition at line 197 of file arguments.cpp.

References CLAW_ASSERT, and has_value().

## get_program_name()

const std::string & claw::arguments::get_program_name | ( |  | ) | const

Get the name of the program.

Definition at line 176 of file arguments.cpp.

## get_real()

double claw::arguments::get_real | ( | const std::string & | arg_name | ) | const

Get the real value of an argument.

Parameters

  arg_name | The name of the argument to get.

Precondition
  has_value(arg_name)

Definition at line 215 of file arguments.cpp.

References CLAW_ASSERT, and has_value().

## get_string()

const std::string & claw::arguments::get_string | ( | const std::string & | arg_name | ) | const

Get the string value of an argument.

Parameters

  arg_name | The name of the argument to get.

Precondition
  has_value(arg_name)

Definition at line 234 of file arguments.cpp.

References CLAW_ASSERT, and has_value().

## has_value()

bool claw::arguments::has_value | ( | const std::string & | arg_name | ) | const

Tell if a value is associated to an argument.

Parameters

  arg_name | The name of the argument to test.

Definition at line 123 of file arguments.cpp.

Referenced by add_argument(), get_integer(), get_real(), and get_string().

## only_integer_values()

bool claw::arguments::only_integer_values | ( | const std::string & | arg_name | ) | const

Tell if only integer values are associated to an argument.

Parameters

  arg_name | The name of the argument to test.

Definition at line 133 of file arguments.cpp.

## only_real_values()

bool claw::arguments::only_real_values | ( | const std::string & | arg_name | ) | const

Tell if only real values are associated to an argument.

Parameters

  arg_name | The name of the argument to test.

Definition at line 155 of file arguments.cpp.

## parse() [1/2]

void claw::arguments::parse | ( | int & | argc,
|  | char **& | argv )

Parse arguments.

Parameters

  argc | Number of arguments.
  argv | Arguments.

All supported arguments will be removed from argv.

Definition at line 97 of file arguments.cpp.

References parse().

Referenced by arguments(), arguments(), parse(), and parse().

## parse() [2/2]

void claw::arguments::parse | ( | int & | argc,
|  | char **& | argv,
|  | const claw::math::ordered_set< std::string > & | allowed )

Parse arguments.

Parameters

  argc | Number of arguments.
  argv | Arguments.
  allowed | The set of allowed arguments.

All supported arguments will be removed from argv.

Definition at line 111 of file arguments.cpp.

References parse().

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

- arguments.hpp
- code/arguments.cpp