conf::Config Class Reference

A class for defining, storing and querying options. More...

#include <conf.hh>

List of all members.

Public Types

typedef std::map< unsigned
char, int > 
ShortMap
 A type for mapping short option names to option indices.
typedef std::map< std::string,
int > 
LongMap
 A type for mapping long option names to option indices.

Public Member Functions

 Config ()
 Create an empty config.
Configoperator() (std::string usage)
 Add a usage line for the help screen.
Configoperator() (unsigned char short_name, std::string long_name, std::string type="", std::string default_value="", std::string help="")
 Add a new option.
void parse (int argc, char *argv[], bool override=true)
 Parse command line arguments.
void read (FILE *file, bool override=false)
 Read a config file.
void check_required () const
 Check if all required options are specified.
std::string help_string () const
 Returns the usage information.
const Optionoperator[] (unsigned char short_name) const
 Get a value of an option.
const Optionoperator[] (std::string long_name) const
 Get a value of an option.

Public Attributes

std::string usage_line
 Usage line printed in help if specified.
std::vector< Optionoptions
 Options added to the configuration.
ShortMap short_map
 Mapping short names to options.
LongMap long_map
 Mapping long names to options.
std::vector< std::string > arguments
 Rest of the non-option arguments.
int longest_name_length
 The length of the longest long name.


Detailed Description

A class for defining, storing and querying options.

Bug:
An option added to config can not be deleted anymore.


Member Function Documentation

Config & conf::Config::operator() unsigned char  short_name,
std::string  long_name,
std::string  type = "",
std::string  default_value = "",
std::string  help = ""
 

Add a new option.

Parameters:
short_name = the short name of the option used after a hyphen
long_name = the long name of the option used after two hyphens
type = a space seperated list of type specifiers:
  • "arg" = argument must follow the option
  • "must" = the argument must be specified by the user
default_value = the default value of the option
help = the help string of the option

void conf::Config::parse int  argc,
char *  argv[],
bool  override = true
 

Parse command line arguments.

Parameters:
argc = the number of arguments
argv = the arguments
override = should we override options specified already

void conf::Config::read FILE *  file,
bool  override = false
 

Read a config file.

The config file can contain command line arguments almost as if they were specified on the command line. The only difference is that quotation marks \, ', " are interpreted by the function. All quotation marks can be used to quote other quotation marks, and backslash can be used to quote backslash too. Unless quoted, whitespace (tab, space, newline) separate arguments.

Parameters:
file = file to read from
override = should we override options specified already


The documentation for this class was generated from the following files:
Generated on Tue Apr 8 09:58:19 2008 for GoCam by  doxygen 1.4.6