![]() |
Public API Reference |
![]() |
This class can be used to print the commandline help, eg when the '-help' option has been used. More...
#include <csutil/cmdhelp.h>
Public Member Functions | |
void | AddCommandLineExample (const char *example) |
Add a commandline example to be printed in the list of usage examples (eg "myapp -l file.xml"). | |
void | AddCommandLineOption (csOptionDescription &description, csVariant &value, size_t section=0) |
Add a commandline option to be described in the help text. | |
void | AddCommandLineOption (const char *name, const char *description, csVariant value, size_t section=0) |
Add a commandline option to be described in the help text. | |
size_t | AddCommandLineSection (const char *name) |
Add a new section of options. | |
void | PrintApplicationHelp (iObjectRegistry *registry, const char *command, const char *usage, const char *description) const |
Print to standard output all command options and usages of this application and its plugins. | |
Static Public Member Functions | |
static bool | CheckHelp (iObjectRegistry *object_reg, iCommandLineParser *cmdline=0) |
Return whether or not the '-help' option has been given on the commandline. | |
static void | Help (iObjectRegistry *object_reg, iCommandLineParser *cmdline=0) |
Print the plugin help on standard output. | |
static void | PrintOption (const csOptionDescription &option, const csVariant &value) |
Print an option on standard output. | |
static void | PrintOption (const char *name, const char *description, const csVariant &value) |
Print an option on standard output. | |
static void | PrintTitle (const char *title, unsigned int level=0) |
Print a title on standard output. |
This class can be used to print the commandline help, eg when the '-help' option has been used.
A first functionality provided is the ability to print the options of all the currently loaded plugins, iff they implement iPluginConfig. Use Help() for this.
A more advanced usage is to print a help message for the whole application usage, not only for the available plugins. Use PrintApplicationHelp() for this.
To use PrintApplicationHelp(), you need to provide the command, usage, and description parameters which will contain the main description of your application and its usage. You can also add usage examples with AddCommandLineExample().
You can add specific options for your application through AddCommandLineOption(). If the list of your options is big, then you can structure these options in sections by using AddCommandLineSection().
When PrintApplicationHelp() is called, this tool will write to the standard output a help text of the following structure:
<description> Usage: <usage> Examples: <example> Available options: Specific options for <command>: <list of options> <section name>-specific options: <list of options> General options: <list of CS general options>
void csCommandLineHelper::AddCommandLineExample | ( | const char * | example | ) |
Add a commandline example to be printed in the list of usage examples (eg "myapp -l file.xml").
void csCommandLineHelper::AddCommandLineOption | ( | csOptionDescription & | description, |
csVariant & | value, | ||
size_t | section = 0 |
||
) |
Add a commandline option to be described in the help text.
description | The description of the option |
section | The index of the section of the option. A value of 0 means the default 'application' section. |
void csCommandLineHelper::AddCommandLineOption | ( | const char * | name, |
const char * | description, | ||
csVariant | value, | ||
size_t | section = 0 |
||
) |
Add a commandline option to be described in the help text.
name | The name of the option, eg "debug" |
description | A user friendly description of the option, eg 'Enable output of debug information'. |
section | The index of the section of the option. A value of 0 means the default 'application' section. |
size_t csCommandLineHelper::AddCommandLineSection | ( | const char * | name | ) |
Add a new section of options.
Return the index of this new section.
static bool csCommandLineHelper::CheckHelp | ( | iObjectRegistry * | object_reg, |
iCommandLineParser * | cmdline = 0 |
||
) | [static] |
Return whether or not the '-help' option has been given on the commandline.
If the commandline parser is not given then the default commandline parser from the registry will be used.
static void csCommandLineHelper::Help | ( | iObjectRegistry * | object_reg, |
iCommandLineParser * | cmdline = 0 |
||
) | [static] |
Print the plugin help on standard output.
This function will first send a broadcast message of type csevCommandLineHelp, then it will check all loaded plugins and print their options if they implement iPluginConfig.
If the commandline parser is not given then the default commandline parser from the registry will be used.
void csCommandLineHelper::PrintApplicationHelp | ( | iObjectRegistry * | registry, |
const char * | command, | ||
const char * | usage, | ||
const char * | description | ||
) | const |
Print to standard output all command options and usages of this application and its plugins.
registry | Main object registry |
command | Name of the executable (eg "myapp"). |
usage | Syntax to launch the executable (eg "myapp <OPTIONS> filename"). |
description | User friendly description of the application. |
static void csCommandLineHelper::PrintOption | ( | const csOptionDescription & | option, |
const csVariant & | value | ||
) | [static] |
Print an option on standard output.
option | The description of the option |
value | The default value of the option (it can be uninitialized). |
static void csCommandLineHelper::PrintOption | ( | const char * | name, |
const char * | description, | ||
const csVariant & | value | ||
) | [static] |
Print an option on standard output.
name | The name of the option |
description | A user friendly description of the option |
value | The default value of the option, at least initialized to the correct type. |
static void csCommandLineHelper::PrintTitle | ( | const char * | title, |
unsigned int | level = 0 |
||
) | [static] |
Print a title on standard output.
title | The title |
level | The level of the title. 0 is the higher level, other levels will be displayed with less emphasis. |