PhoenixInkscape  2.0.0
Generate multiple png files with svg inkscape files
OptionParser.h
Go to the documentation of this file.
1 /***************************************
2  Auteur : Pierre Aubert
3  Mail : pierre.aubert@lapp.in2p3.fr
4  Licence : CeCILL-C
5 ****************************************/
6 
7 #ifndef __POPTIONPARSER_H__
8 #define __POPTIONPARSER_H__
9 
10 #include "OptionMode.h"
11 
13 
16  public:
17  OptionParser(bool enableHelpOption = true, const PString & programVersion = "");
18  OptionParser(const OptionParser & other);
19  virtual ~OptionParser();
20  OptionParser & operator = (const OptionParser & other);
21 
22  void setExampleLongOption(const PString & example);
23  void setExampleShortOption(const PString & example);
24 
25  void addMode(const PString & modeName);
26  void closeMode();
27 
28  void addOption(const PString & longOption, const PString & shortOption, OptionType::OptionType optionType,
29  bool isRequired, const PString & docString);
30  void addOption(const PString & longOption, const PString & shortOption, OptionType::OptionType optionType,
31  bool isRequired, bool isAllowEmpty, const PString & docString);
32  void addOption(const PString & longOption, const PString & shortOption, OptionType::OptionType optionType,
33  bool isRequired, bool isAllowEmpty, const PVecString & vecPossibleValue, const PString & docString);
34 
35  template<typename T>
36  void addOption(const PString & longOption, const PString & shortOption, const T defaultValue, const PString & docString);
37 
38  template<typename T>
39  void addOption(const PString & longOption, const PString & shortOption, const T defaultValue,
40  OptionType::OptionType optionType, const PString & docString);
41 
42  void print() const;
43  void parseArgument(int argc, char** argv);
44 
45  const OptionMode & getDefaultMode() const;
47 
48  const OptionMode & getMode(const PString & name) const;
49  OptionMode & getMode(const PString & name);
50 
51  bool isModeExist(const PString & name) const;
52 
53  protected:
54  void copyOptionParser(const OptionParser & other);
55 
56  private:
58  void parseArgumentNormalUse(ArgParser & parser);
60  bool checkArgument() const;
61 
62  template<typename T>
63  void checkOptionType(OptionType::OptionType optionType);
64 
66  const OptionMode * getCurrentlyParsedMode() const;
67 
68  bool completeOptionValue(PString & possibleValue, const PString & cursorOption, const PString & prevCursorOption) const;
69  const Option * getLongOptionValue(PString & valueToBeCompleted, const PString & cursorOption) const;
70  const Option * getSplitOptionValue(PString & valueToBeCompleted, const PString & cursorOption, const PString & prevCursorOption) const;
71 
72  void getPossibleOption(PString & possibleOption, const PString & cursorOption) const;
73  void getPossibleOtherOption(PString & possibleOption, const PString & cursorOption) const;
74 
80  size_t p_currentMode;
89 };
90 
91 #include "OptionParser_impl.h"
92 
93 #endif
94 
std::vector< OptionMode > VecMode
Vector of mode.
Definition: OptionMode.h:76
std::vector< PString > PVecString
Definition: PString.h:96
Parse the list of arguments passed to a program.
Definition: ArgParser.h:13
Describe a mode in the program arguments.
Definition: OptionMode.h:13
Parse the options passed to a program.
Definition: OptionParser.h:15
void parseArgument(int argc, char **argv)
Parse the arguments passed to the program.
void addOption(const PString &longOption, const PString &shortOption, OptionType::OptionType optionType, bool isRequired, const PString &docString)
Add an option in the OptionParser.
PString p_exempleLongOption
Usage example with long options.
Definition: OptionParser.h:82
const Option * getSplitOptionValue(PString &valueToBeCompleted, const PString &cursorOption, const PString &prevCursorOption) const
Get the split option (without =) value to be completed.
OptionParser & operator=(const OptionParser &other)
Definition of equal operator of OptionParser.
bool p_enableHelpOption
True to enable automatically the printing of the help option when the program is called with –help or...
Definition: OptionParser.h:86
const OptionMode & getMode(const PString &name) const
Get mode by name.
void setExampleShortOption(const PString &example)
Set the example usage of the program.
void closeMode()
Close the current mode and go back to be default one.
void addMode(const PString &modeName)
Add a mode in the option.
void print() const
Print all the options.
virtual ~OptionParser()
Destructeur of OptionParser.
bool isModeExist(const PString &name) const
Check if the given mode name does exist.
VecMode p_vecMode
Vector of all the defined mode in the OptionParser.
Definition: OptionParser.h:78
void copyOptionParser(const OptionParser &other)
Copy function of OptionParser.
bool completeOptionValue(PString &possibleValue, const PString &cursorOption, const PString &prevCursorOption) const
Complete the possible value of an option (FILENAME, DIRECTORY, FILE_OR_DIR)
bool checkArgument() const
Check the argument of the parser.
void getPossibleOtherOption(PString &possibleOption, const PString &cursorOption) const
Get the possible other options which can be used.
size_t p_currentMode
Index of the current mode in the OptionParser.
Definition: OptionParser.h:80
void getPossibleOption(PString &possibleOption, const PString &cursorOption) const
Get the possible options which can be used.
OptionMode & getParserMode(ArgParser &parser)
Get a mode if it exist.
void initialisationOptionParser()
Initialisation function of the class OptionParser.
OptionMode * p_currentParserMode
Current mode parsed.
Definition: OptionParser.h:76
const Option * getLongOptionValue(PString &valueToBeCompleted, const PString &cursorOption) const
Get the long option value to be completed.
OptionParser(bool enableHelpOption=true, const PString &programVersion="")
Default constructeur of OptionParser.
void checkOptionType(OptionType::OptionType optionType)
Check the given option type.
const OptionMode * getCurrentlyParsedMode() const
Get the currently parsed OptionMode.
void setExampleLongOption(const PString &example)
Set the example usage of the program.
PString p_programVersion
Program version to be printed on –version or -v option.
Definition: OptionParser.h:88
PString p_exempleShortOption
Usage example with short options.
Definition: OptionParser.h:84
void parseArgumentNormalUse(ArgParser &parser)
Classical argument parsing mode.
const OptionMode & getDefaultMode() const
Get default mode.
void parseArgumentBashCompletion(ArgParser &parser)
Bash completion argument parsing mode.
Describes an option passed to a program.
Definition: Option.h:14
Extends the std::string.
Definition: PString.h:16