1#ifndef WIBBLE_COMMANDLINE_ENGINE_H
2#define WIBBLE_COMMANDLINE_ENGINE_H
11namespace commandline {
14 -- This help is left around to be reintegrated when I found something
15 appropriate. It documents the general behavior of functions in the form
16 ArgList::iterator parse(ArgList& list, ArgList::iterator begin);
51 std::map<std::string, Option*>
m_long;
95 ArgList::iterator
parse(
ArgList& list, ArgList::iterator begin);
99 const std::string&
usage = std::string(),
107 const std::string&
name()
const {
return m_name; }
125 const std::string&
usage = std::string(),
129 if (m_manager) m_manager->
add(item);
140 const std::string&
usage = std::string(),
154 if (m_manager) m_manager->
add(
g);
170 const std::string&
usage = std::string(),
175 if (m_manager) m_manager->
add(item);
183 const std::string&
usage = std::string(),
201 std::map<std::string, Engine*>::const_iterator i =
m_aliases.find(
name);
218 void dump(std::ostream& out,
const std::string&
prefix = std::string());
Parse commandline options.
Definition engine.h:39
const std::vector< Option * > & options() const
Get the Options that have been added to this engine.
Definition engine.h:194
bool hidden
Definition engine.h:228
std::vector< Engine * > m_commands
Definition engine.h:47
void addWithoutAna(Option *o)
Definition engine.cpp:9
std::vector< OptionGroup * > m_groups
Definition engine.h:45
void rebuild()
Definition engine.cpp:48
Engine * addEngine(const std::string &name, const std::string &usage=std::string(), const std::string &description=std::string(), const std::string &longDescription=std::string())
Create a Engine and add it to this engine as a command.
Definition engine.h:182
const std::vector< Engine * > & commands() const
Get the Engines that have been added to this engine.
Definition engine.h:197
bool hasOptions() const
Returns true if this Engine has options to parse.
Definition engine.h:209
Engine * m_found_command
Definition engine.h:56
std::vector< std::string > aliases
Definition engine.h:221
ArgList::iterator parse(ArgList &list, ArgList::iterator begin)
Parse all the switches in list, leaving only the non-switch arguments or the arguments following "--"...
Definition engine.cpp:250
const std::vector< OptionGroup * > & groups() const
Get the OptionGroups that have been added to this engine.
Definition engine.h:191
T * add(const std::string &name, char shortName, const std::string &longName, const std::string &usage=std::string(), const std::string &description=std::string())
Create an option and add to this engine.
Definition engine.h:137
ArgList::iterator parseList(ArgList &list)
Parse the list of arguments, starting at the beginning and removing the arguments it successfully par...
Definition engine.h:89
std::string description
Definition engine.h:223
OptionGroup * addGroup(const std::string &description)
Create an OptionGroup and add it to this engine.
Definition engine.h:161
std::map< char, Option * > m_short
Definition engine.h:50
const std::string & name() const
Definition engine.h:107
std::vector< Option * > m_options
Definition engine.h:46
std::map< std::string, Engine * > m_aliases
Definition engine.h:52
Engine * foundCommand() const
Return the command that has been found in the commandline, or NULL if none have been found.
Definition engine.h:215
std::string longDescription
Definition engine.h:224
ArgList::iterator parseKnownSwitches(ArgList &list, ArgList::iterator begin)
Parse all known Options and leave the rest in list.
Definition engine.cpp:130
Engine * command(const std::string &name) const
Definition engine.h:199
T * create(const std::string &name, char shortName, const std::string &longName, const std::string &usage=std::string(), const std::string &description=std::string())
Create an option.
Definition engine.h:122
void add(const std::string &alias, Engine *o)
Definition engine.cpp:39
bool no_switches_after_first_arg
Definition engine.h:233
Engine * createEngine(const std::string &name, const std::string &usage=std::string(), const std::string &description=std::string(), const std::string &longDescription=std::string())
Create a Engine.
Definition engine.h:169
std::map< std::string, Option * > m_long
Definition engine.h:51
void dump(std::ostream &out, const std::string &prefix=std::string())
Definition engine.cpp:315
std::string examples
Definition engine.h:225
std::string usage
Definition engine.h:222
std::string primaryAlias
Definition engine.h:220
std::pair< ArgList::iterator, bool > parseFirstIfKnown(ArgList &list, ArgList::iterator begin)
Handle the commandline switch at 'begin'.
Definition engine.cpp:74
Engine(MemoryManager *mman=0, const std::string &name=std::string(), const std::string &usage=std::string(), const std::string &description=std::string(), const std::string &longDescription=std::string())
Definition engine.h:98
OptionGroup * createGroup(const std::string &description)
Create an OptionGroup.
Definition engine.h:151
Keep track of various wibble::commandline components, and deallocate them at object destruction.
Definition core.h:63
T * add(T *item)
Definition core.h:76
Group related commandline options.
Definition options.h:360
Interface for a parser for one commandline option.
Definition options.h:56
Generic parser for commandline arguments.
Definition parser.h:14