retdec
|
Command-line argument handler. More...
#include <arg_handler.h>
Public Member Functions | |
ArgHandler (const std::string &runString) | |
~ArgHandler () | |
void | setRunString (const std::string &scriptName) |
const std::string & | getRunString () const |
void | setHelp (const std::string &helpString) |
const std::string & | getHelp () const |
bool | parse (int argc, char **argv) |
std::uint32_t | count () const |
bool | registerArg (char opt, const std::string &longOpt, bool hasInput=false) |
const ArgData * | operator[] (char opt) const |
const ArgData * | operator[] (const std::string &opt) const |
const std::vector< std::string > & | getRawInputs () const |
Private Types | |
using | ArgMap = std::map< std::string, ArgInfo * > |
Mapping of option to ArgInfo. More... | |
Private Member Functions | |
ArgHandler () | |
ArgHandler (const ArgHandler &) | |
ArgHandler & | operator= (const ArgHandler &) |
void | resetArgData () |
Private Attributes | |
ArgMap | _argMap |
Registered arguments. More... | |
std::string | _runString |
Script name printed in help. More... | |
std::string | _helpString |
Help text printed in help. More... | |
std::uint32_t | _count |
Number of used arguments. More... | |
std::vector< std::string > | _rawInputs |
Holds the non-argument raw input. More... | |
Friends | |
std::ostream & | operator<< (std::ostream &out, const ArgHandler &handler) |
Command-line argument handler.
ArgHandler handles the parsing of command-line arguments. It offers the argument registration, checking, help message building and parsing. Supports both short and long option arguments.
|
private |
Mapping of option to ArgInfo.
retdec::unpackertool::ArgHandler::ArgHandler | ( | const std::string & | runString | ) |
Constructor.
runString | Run string to be shown in help. |
retdec::unpackertool::ArgHandler::~ArgHandler | ( | ) |
Destructor.
|
private |
|
private |
uint32_t retdec::unpackertool::ArgHandler::count | ( | ) | const |
Returns the number of used arguments.
const std::string & retdec::unpackertool::ArgHandler::getHelp | ( | ) | const |
Gets the message shown in help.
const std::vector< std::string > & retdec::unpackertool::ArgHandler::getRawInputs | ( | ) | const |
Return the raw inputs in command-line arguments.
const std::string & retdec::unpackertool::ArgHandler::getRunString | ( | ) | const |
Returns the run string to be shown in help.
|
private |
const ArgData * retdec::unpackertool::ArgHandler::operator[] | ( | char | opt | ) | const |
Array like access to the command-line arguments. Accessor is short option.
opt | Short option of an argument. |
const ArgData * retdec::unpackertool::ArgHandler::operator[] | ( | const std::string & | opt | ) | const |
Array like access to the command-line arguments. Accessor is short or long option.
opt | Short or long option of an argument. |
bool retdec::unpackertool::ArgHandler::parse | ( | int | argc, |
char ** | argv | ||
) |
Parses the arguments from the command-line.
argc | Number of arguments. |
argv | Raw argument values. |
bool retdec::unpackertool::ArgHandler::registerArg | ( | char | opt, |
const std::string & | longOpt, | ||
bool | hasInput = false |
||
) |
Register a command-line argument to the handler. The registration may fail if there is already an argument with the specified short or long option.
opt | Short option of an argument. |
longOpt | Long option of an argument. |
hasInput | True if the argument has an input, defaultly false. |
|
private |
Resets the used arguments.
void retdec::unpackertool::ArgHandler::setHelp | ( | const std::string & | helpString | ) |
Sets the message shown in help.
helpString | Message shown in help. |
void retdec::unpackertool::ArgHandler::setRunString | ( | const std::string & | runString | ) |
Set the run string to be shown in help.
runString | Run string to set. |
|
friend |
Prints the help with the registered arguments.
out | The output stream to print to. |
handler | The argument handler itself. |
|
private |
Registered arguments.
|
private |
Number of used arguments.
|
private |
Help text printed in help.
|
private |
Holds the non-argument raw input.
|
private |
Script name printed in help.