60 lines
1.3 KiB
C++
60 lines
1.3 KiB
C++
|
#ifndef CMDLINE_PARSER_HPP_INCLUDED
|
||
|
#define CMDLINE_PARSER_HPP_INCLUDED
|
||
|
|
||
|
#include <string>
|
||
|
|
||
|
struct cmdlineParserCtl;
|
||
|
|
||
|
class CmdlineParser {
|
||
|
public:
|
||
|
CmdlineParser();
|
||
|
|
||
|
~CmdlineParser();
|
||
|
|
||
|
enum optType {FLAG, INT, UINT, STRING, BINUINT, FLOAT};
|
||
|
|
||
|
void
|
||
|
defineOption(std::string const optionName,
|
||
|
optType const optionType);
|
||
|
|
||
|
void
|
||
|
processOptions(int const argc,
|
||
|
const char ** const argv);
|
||
|
|
||
|
bool
|
||
|
optionIsPresent(std::string const optionName) const;
|
||
|
|
||
|
int
|
||
|
getOptionValueInt(std::string const optionName) const;
|
||
|
|
||
|
unsigned int
|
||
|
getOptionValueUint(std::string const optionName) const;
|
||
|
|
||
|
std::string
|
||
|
getOptionValueString(std::string const optionName) const;
|
||
|
|
||
|
unsigned long long
|
||
|
getOptionValueBinUint(std::string const optionName) const;
|
||
|
|
||
|
double
|
||
|
getOptionValueFloat(std::string const optionName) const;
|
||
|
|
||
|
unsigned int
|
||
|
argumentCount() const;
|
||
|
|
||
|
std::string
|
||
|
getArgument(unsigned int const argNumber) const;
|
||
|
|
||
|
private:
|
||
|
struct cmdlineParserCtl * cp;
|
||
|
|
||
|
// Make sure no one can copy this object, because if there are two
|
||
|
// copies, there will be two attempts to destroy *cp.
|
||
|
CmdlineParser(CmdlineParser const&) {};
|
||
|
|
||
|
CmdlineParser&
|
||
|
operator=(CmdlineParser const&) {return *this;}
|
||
|
};
|
||
|
|
||
|
#endif
|