1 #ifndef WIBBLE_COMMANDLINE_ENGINE_H 2 #define WIBBLE_COMMANDLINE_ENGINE_H 11 namespace 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
51 std::map<std::string, Option*>
m_long;
60 void add(
const std::string& alias,
Engine* o);
99 const std::string&
usage = std::string(),
107 const std::string&
name()
const {
return m_name; }
124 const std::string& longName,
125 const std::string&
usage = std::string(),
129 if (m_manager) m_manager->
add(item);
137 T*
add(
const std::string& name,
139 const std::string& longName,
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);
202 if (i == m_aliases.end())
209 bool hasOptions()
const {
return !m_groups.empty() || !m_options.empty(); }
218 void dump(std::ostream& out,
const std::string& prefix = std::string());
Engine * command(const std::string &name) const
Definition: engine.h:199
bool hasOptions() const
Returns true if this Engine has options to parse.
Definition: engine.h:209
T * add(T *item)
Definition: core.h:76
Iterator< typename I::value_type > iterator(I i)
Definition: iterator.h:123
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
Generic parser for commandline arguments.
Definition: parser.h:13
const std::vector< Engine * > & commands() const
Get the Engines that have been added to this engine.
Definition: engine.h:197
Engine * foundCommand() const
Return the command that has been found in the commandline, or NULL if none have been found...
Definition: engine.h:215
const std::vector< OptionGroup * > & groups() const
Get the OptionGroups that have been added to this engine.
Definition: engine.h:191
std::string longDescription
Definition: engine.h:224
OptionGroup * createGroup(const std::string &description)
Create an OptionGroup.
Definition: engine.h:151
bool hidden
Definition: engine.h:228
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
std::string examples
Definition: engine.h:225
Engine * m_found_command
Definition: engine.h:56
std::map< std::string, Engine * > m_aliases
Definition: engine.h:52
ListIterator< List > begin(List l)
Definition: list.h:420
std::vector< Engine * > m_commands
Definition: engine.h:47
void add(const std::string &alias, Engine *o)
Definition: engine.cpp:39
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
OptionGroup * addGroup(const std::string &description)
Create an OptionGroup and add it to this engine.
Definition: engine.h:161
std::vector< Option * > m_options
Definition: engine.h:46
Parse commandline options.
Definition: engine.h:38
ArgList::iterator parseKnownSwitches(ArgList &list, ArgList::iterator begin)
Parse all known Options and leave the rest in list.
Definition: engine.cpp:130
Interface for a parser for one commandline option.
Definition: options.h:55
const std::string & name() const
Definition: engine.h:107
std::pair< ArgList::iterator, bool > parseFirstIfKnown(ArgList &list, ArgList::iterator begin)
Handle the commandline switch at 'begin'.
Definition: engine.cpp:74
Keep track of various wibble::commandline components, and deallocate them at object destruction...
Definition: core.h:62
std::vector< std::string > aliases
Definition: engine.h:221
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
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
Group related commandline options.
Definition: options.h:359
bool no_switches_after_first_arg
Definition: engine.h:233
std::string usage
Definition: engine.h:222
std::string primaryAlias
Definition: engine.h:220
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< char, Option * > m_short
Definition: engine.h:50
std::string description
Definition: engine.h:223
std::map< std::string, Option * > m_long
Definition: engine.h:51
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
void addWithoutAna(Option *o)
Definition: engine.cpp:9
void dump(std::ostream &out, const std::string &prefix=std::string())
Definition: engine.cpp:315
void rebuild()
Definition: engine.cpp:48
std::vector< OptionGroup * > m_groups
Definition: engine.h:45
const std::vector< Option * > & options() const
Get the Options that have been added to this engine.
Definition: engine.h:194