retdec
Public Member Functions | Private Types | Private Member Functions | Private Attributes | Friends | List of all members
retdec::unpackertool::ArgHandler Class Reference

Command-line argument handler. More...

#include <arg_handler.h>

Collaboration diagram for retdec::unpackertool::ArgHandler:
Collaboration graph
[legend]

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 ArgDataoperator[] (char opt) const
 
const ArgDataoperator[] (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 &)
 
ArgHandleroperator= (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)
 

Detailed Description

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.

Member Typedef Documentation

◆ ArgMap

using retdec::unpackertool::ArgHandler::ArgMap = std::map<std::string, ArgInfo*>
private

Mapping of option to ArgInfo.

Constructor & Destructor Documentation

◆ ArgHandler() [1/3]

retdec::unpackertool::ArgHandler::ArgHandler ( const std::string &  runString)

Constructor.

Parameters
runStringRun string to be shown in help.

◆ ~ArgHandler()

retdec::unpackertool::ArgHandler::~ArgHandler ( )

Destructor.

◆ ArgHandler() [2/3]

retdec::unpackertool::ArgHandler::ArgHandler ( )
private

◆ ArgHandler() [3/3]

retdec::unpackertool::ArgHandler::ArgHandler ( const ArgHandler )
private

Member Function Documentation

◆ count()

uint32_t retdec::unpackertool::ArgHandler::count ( ) const

Returns the number of used arguments.

Returns
Number of used arguments.

◆ getHelp()

const std::string & retdec::unpackertool::ArgHandler::getHelp ( ) const

Gets the message shown in help.

Returns
Message shown in help.

◆ getRawInputs()

const std::vector< std::string > & retdec::unpackertool::ArgHandler::getRawInputs ( ) const

Return the raw inputs in command-line arguments.

Returns
The raw string list.

◆ getRunString()

const std::string & retdec::unpackertool::ArgHandler::getRunString ( ) const

Returns the run string to be shown in help.

Returns
Run string.

◆ operator=()

ArgHandler& retdec::unpackertool::ArgHandler::operator= ( const ArgHandler )
private

◆ operator[]() [1/2]

const ArgData * retdec::unpackertool::ArgHandler::operator[] ( char  opt) const

Array like access to the command-line arguments. Accessor is short option.

Parameters
optShort option of an argument.
Returns
ArgData if they are available, nullptr otherwise.

◆ operator[]() [2/2]

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.

Parameters
optShort or long option of an argument.
Returns
ArgData if they are available, nullptr otherwise.

◆ parse()

bool retdec::unpackertool::ArgHandler::parse ( int  argc,
char **  argv 
)

Parses the arguments from the command-line.

Parameters
argcNumber of arguments.
argvRaw argument values.
Returns
True if the parsing was successful, otherwise false.

◆ registerArg()

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.

Parameters
optShort option of an argument.
longOptLong option of an argument.
hasInputTrue if the argument has an input, defaultly false.
Returns
True if the registration was successful, otherwise false.

◆ resetArgData()

void retdec::unpackertool::ArgHandler::resetArgData ( )
private

Resets the used arguments.

◆ setHelp()

void retdec::unpackertool::ArgHandler::setHelp ( const std::string &  helpString)

Sets the message shown in help.

Parameters
helpStringMessage shown in help.

◆ setRunString()

void retdec::unpackertool::ArgHandler::setRunString ( const std::string &  runString)

Set the run string to be shown in help.

Parameters
runStringRun string to set.

Friends And Related Function Documentation

◆ operator<<

std::ostream& operator<< ( std::ostream &  out,
const ArgHandler handler 
)
friend

Prints the help with the registered arguments.

Parameters
outThe output stream to print to.
handlerThe argument handler itself.
Returns
The output stream it prints to.

Member Data Documentation

◆ _argMap

ArgMap retdec::unpackertool::ArgHandler::_argMap
private

Registered arguments.

◆ _count

std::uint32_t retdec::unpackertool::ArgHandler::_count
private

Number of used arguments.

◆ _helpString

std::string retdec::unpackertool::ArgHandler::_helpString
private

Help text printed in help.

◆ _rawInputs

std::vector<std::string> retdec::unpackertool::ArgHandler::_rawInputs
private

Holds the non-argument raw input.

◆ _runString

std::string retdec::unpackertool::ArgHandler::_runString
private

Script name printed in help.


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