9#ifndef SQUID_SRC_COMMANDLINE_H
10#define SQUID_SRC_COMMANDLINE_H
48 bool hasOption(
const int optId,
const char **optValue =
nullptr)
const;
52 typedef void Visitor(
const int optId,
const char *optValue);
61 int argc()
const {
return static_cast<int>(
argv_.size()) - 1; }
64 char **
argv()
const {
return const_cast<char**
>(
argv_.data()); }
struct option RawLongOption
Manages arguments passed to a program (i.e., main(argc, argv) parameters).
std::vector< char * > argv_
raw main() parameters, including argv[0] and a nil argv[argc]
void Visitor(const int optId, const char *optValue)
bool hasOption(const int optId, const char **optValue=nullptr) const
CommandLine & operator=(const CommandLine &)
const RawLongOption * longOptions() const
void forEachOption(Visitor) const
calls Visitor for each of the configured command line option
std::vector< LongOption > longOptions_
long –option rules
const char * shortOptions_
single-dash, single-letter (-x) option rules
void resetArg0(const char *programName)
replaces argv[0] with the new value
const char * arg0() const
void pushFrontOption(const char *name, const char *value=nullptr)
inserts a (possibly duplicated) option at the beginning of options (just after argv[0])
bool nextOption(int &optId) const
A struct option C++ wrapper, helps with option::name copying/freeing.
void copy(const RawLongOption &)
LongOption & operator=(const LongOption &)