Yate
Public Member Functions | List of all members
Configuration Class Reference

Configuration file handling. More...

#include <yatengine.h>

Inheritance diagram for Configuration:
String GenObject

Public Member Functions

 Configuration ()
 
 Configuration (const char *filename, bool warn=true)
 
Configurationoperator= (const String &value)
 
unsigned int sections () const
 
unsigned int count () const
 
NamedListgetSection (unsigned int index) const
 
NamedListgetSection (const String &sect) const
 
NamedStringgetKey (const String &sect, const String &key) const
 
const char * getValue (const String &sect, const String &key, const char *defvalue=0) const
 
int getIntValue (const String &sect, const String &key, int defvalue=0, int minvalue=INT_MIN, int maxvalue=INT_MAX, bool clamp=true) const
 
int getIntValue (const String &sect, const String &key, const TokenDict *tokens, int defvalue=0) const
 
int64_t getInt64Value (const String &sect, const String &key, int64_t defvalue=0, int64_t minvalue=LLONG_MIN, int64_t maxvalue=LLONG_MAX, bool clamp=true) const
 
double getDoubleValue (const String &sect, const String &key, double defvalue=0.0) const
 
bool getBoolValue (const String &sect, const String &key, bool defvalue=false) const
 
void clearSection (const char *sect=0)
 
NamedListcreateSection (const String &sect)
 
void clearKey (const String &sect, const String &key)
 
void addValue (const String &sect, const char *key, const char *value=0)
 
void setValue (const String &sect, const char *key, const char *value=0)
 
void setValue (const String &sect, const char *key, int value)
 
void setValue (const String &sect, const char *key, bool value)
 
bool load (bool warn=true)
 
bool save () const
 
- Public Member Functions inherited from String
 String ()
 
 String (const char *value, int len=-1)
 
 String (char value, unsigned int repeat=1)
 
 String (int32_t value)
 
 String (uint32_t value)
 
 String (int64_t value)
 
 String (uint64_t value)
 
 String (bool value)
 
 String (double value)
 
 String (const String &value)
 
 String (const String *value)
 
virtual ~String ()
 
virtual void * getObject (const String &name) const
 
const char * c_str () const
 
const char * safe () const
 
const char * safe (const char *defStr) const
 
unsigned int length () const
 
bool null () const
 
int lenUtf8 (uint32_t maxChar=0x10ffff, bool overlong=false) const
 
int fixUtf8 (const char *replace=0, uint32_t maxChar=0x10ffff, bool overlong=false)
 
bool checkBOM () const
 
bool stripBOM ()
 
unsigned int hash () const
 
void clear ()
 
char at (int index) const
 
String substr (int offs, int len=-1) const
 
StringtrimBlanks ()
 
StringtrimSpaces ()
 
virtual const StringtoString () const
 
int toInteger (int defvalue=0, int base=0, int minvalue=INT_MIN, int maxvalue=INT_MAX, bool clamp=true) const
 
int toInteger (const TokenDict *tokens, int defvalue=0, int base=0) const
 
long int toLong (long int defvalue=0, int base=0, long int minvalue=LONG_MIN, long int maxvalue=LONG_MAX, bool clamp=true) const
 
int64_t toInt64 (int64_t defvalue=0, int base=0, int64_t minvalue=LLONG_MIN, int64_t maxvalue=LLONG_MAX, bool clamp=true) const
 
double toDouble (double defvalue=0.0) const
 
bool toBoolean (bool defvalue=false) const
 
bool isBoolean () const
 
StringtoUpper ()
 
StringtoLower ()
 
char operator[] (signed int index) const
 
char operator[] (unsigned int index) const
 
 operator const char * () const
 
Stringassign (const char *value, int len=-1)
 
Stringassign (char value, unsigned int repeat=1)
 
Stringhexify (void *data, unsigned int len, char sep=0, bool upCase=false)
 
Stringoperator= (const String &value)
 
Stringoperator= (const String *value)
 
Stringoperator= (const char *value)
 
Stringoperator= (char value)
 
Stringoperator= (int32_t value)
 
Stringoperator= (uint32_t value)
 
Stringoperator= (int64_t value)
 
Stringoperator= (uint64_t value)
 
Stringoperator= (bool value)
 
Stringoperator= (double value)
 
Stringoperator+= (const char *value)
 
Stringoperator+= (char value)
 
Stringoperator+= (int32_t value)
 
Stringoperator+= (uint32_t value)
 
Stringoperator+= (int64_t value)
 
Stringoperator+= (uint64_t value)
 
Stringoperator+= (bool value)
 
Stringoperator+= (double value)
 
bool operator== (const char *value) const
 
bool operator!= (const char *value) const
 
bool operator== (const String &value) const
 
bool operator!= (const String &value) const
 
bool operator&= (const char *value) const
 
bool operator|= (const char *value) const
 
Stringoperator<< (const char *value)
 
Stringoperator<< (char value)
 
Stringoperator<< (int32_t value)
 
Stringoperator<< (uint32_t value)
 
Stringoperator<< (int64_t value)
 
Stringoperator<< (uint64_t value)
 
Stringoperator<< (bool value)
 
Stringoperator<< (double value)
 
Stringoperator>> (const char *skip)
 
Stringoperator>> (char &store)
 
Stringoperator>> (UChar &store)
 
Stringoperator>> (int &store)
 
Stringoperator>> (unsigned int &store)
 
Stringoperator>> (bool &store)
 
Stringappend (const char *value, int len)
 
Stringappend (const char *value, const char *separator=0, bool force=false)
 
Stringappend (const ObjList *list, const char *separator=0, bool force=false)
 
Stringappend (const ObjList &list, const char *separator=0, bool force=false)
 
Stringappend (double value, unsigned int decimals=3)
 
Stringprintf (const char *format,...)
 
Stringprintf (unsigned int length, const char *format,...)
 
StringappendFixed (unsigned int fixedLength, const char *str, unsigned int len=-1, char fill= ' ', int align=Left)
 
StringappendFixed (unsigned int fixedLength, const String &str, char fill= ' ', int align=Left)
 
int find (char what, unsigned int offs=0) const
 
int find (const char *what, unsigned int offs=0) const
 
int rfind (char what) const
 
int rfind (const char *what) const
 
bool startsWith (const char *what, bool wordBreak=false, bool caseInsensitive=false) const
 
bool endsWith (const char *what, bool wordBreak=false, bool caseInsensitive=false) const
 
bool startSkip (const char *what, bool wordBreak=true, bool caseInsensitive=false)
 
StringextractTo (const char *sep, String &store)
 
StringextractTo (const char *sep, bool &store)
 
StringextractTo (const char *sep, int &store, int base=0)
 
StringextractTo (const char *sep, int &store, const TokenDict *tokens, int base=0)
 
StringextractTo (const char *sep, double &store)
 
virtual bool matches (const String &value) const
 
bool matches (const Regexp &rexp)
 
int matchOffset (int index=0) const
 
int matchLength (int index=0) const
 
String matchString (int index=0) const
 
String replaceMatches (const String &templ) const
 
int matchCount () const
 
ObjListsplit (char separator, bool emptyOK=true) const
 
String msgEscape (char extraEsc=0) const
 
String msgUnescape (int *errptr=0, char extraEsc=0) const
 
String sqlEscape (char extraEsc=0) const
 
String uriEscape (char extraEsc=0, const char *noEsc=0) const
 
String uriUnescape (int *errptr=0) const
 
- Public Member Functions inherited from GenObject
 GenObject ()
 
virtual ~GenObject ()
 
virtual bool alive () const
 
virtual void destruct ()
 
NamedCountergetObjCounter () const
 
NamedCountersetObjCounter (NamedCounter *counter)
 

Additional Inherited Members

- Public Types inherited from String
enum  Align { Left = 0, Center, Right }
 
- Static Public Member Functions inherited from String
static const Stringempty ()
 
static const char * boolText (bool value)
 
static int lenUtf8 (const char *value, uint32_t maxChar=0x10ffff, bool overlong=false)
 
static bool checkBOM (const char *str)
 
static bool stripBOM (const char *&str)
 
static bool stripBOM (char *&str)
 
static unsigned int hash (const char *value, unsigned int h=0)
 
static String msgEscape (const char *str, char extraEsc=0)
 
static String msgUnescape (const char *str, int *errptr=0, char extraEsc=0)
 
static String sqlEscape (const char *str, char extraEsc=0)
 
static String uriEscape (const char *str, char extraEsc=0, const char *noEsc=0)
 
static String uriEscape (const char *str, const char *extraEsc, const char *noEsc=0)
 
static String uriUnescape (const char *str, int *errptr=0)
 
static const Stringatom (const String *&str, const char *val)
 
- Static Public Member Functions inherited from GenObject
static void * getObject (const String &name, const GenObject *obj)
 
static bool getObjCounting ()
 
static void setObjCounting (bool enable)
 
static NamedCountergetObjCounter (const String &name, bool create=true)
 
static ObjListgetObjCounters ()
 
- Protected Member Functions inherited from String
virtual void changed ()
 

Detailed Description

Configuration file handling.

A class for parsing and quickly accessing INI style configuration files

Constructor & Destructor Documentation

Create an empty configuration

Configuration ( const char *  filename,
bool  warn = true 
)
explicit

Create a configuration from a file

Parameters
filenameName of file to initialize from
warnTrue to warn if the configuration could not be loaded

Member Function Documentation

void addValue ( const String sect,
const char *  key,
const char *  value = 0 
)

Add the value of a key in a section.

Parameters
sectName of the section, will be created if missing
keyName of the key to add in the section
valueValue to set in the key
void clearKey ( const String sect,
const String key 
)

Deletes a key/value pair

Parameters
sectName of section
keyName of the key to delete
void clearSection ( const char *  sect = 0)

Deletes an entire section

Parameters
sectName of section to delete, NULL to delete all
unsigned int count ( ) const
inline

Get the number of non null sections

Returns
Count of sections

References ObjList::count().

NamedList* createSection ( const String sect)

Makes sure a section with a given name exists, creates if required

Parameters
sectName of section to check or create
Returns
The section's content or NULL if no such section
bool getBoolValue ( const String sect,
const String key,
bool  defvalue = false 
) const

Retrieve the boolean value of a key in a section.

Parameters
sectName of the section
keyName of the key in section
defvalueDefault value to return if not found
Returns
The boolean value contained in the key or the default
double getDoubleValue ( const String sect,
const String key,
double  defvalue = 0.0 
) const

Retrieve the floating point value of a key in a section.

Parameters
sectName of the section
keyName of the key in section
defvalueDefault value to return if not found
Returns
The numeric value contained in the key or the default
int64_t getInt64Value ( const String sect,
const String key,
int64_t  defvalue = 0,
int64_t  minvalue = LLONG_MIN,
int64_t  maxvalue = LLONG_MAX,
bool  clamp = true 
) const

Retrieve the 64-bit numeric value of a key in a section.

Parameters
sectName of the section
keyName of the key in section
defvalueDefault value to return if not found
minvalueMinimum value allowed for the parameter
maxvalueMaximum value allowed for the parameter
clampControl the out of bound values: true to adjust to the nearest bound, false to return the default value
Returns
The number contained in the key or the default
int getIntValue ( const String sect,
const String key,
int  defvalue = 0,
int  minvalue = INT_MIN,
int  maxvalue = INT_MAX,
bool  clamp = true 
) const

Retrieve the numeric value of a key in a section.

Parameters
sectName of the section
keyName of the key in section
defvalueDefault value to return if not found
minvalueMinimum value allowed for the parameter
maxvalueMaximum value allowed for the parameter
clampControl the out of bound values: true to adjust to the nearest bound, false to return the default value
Returns
The number contained in the key or the default
int getIntValue ( const String sect,
const String key,
const TokenDict tokens,
int  defvalue = 0 
) const

Retrieve the numeric value of a key in a section trying first a table lookup.

Parameters
sectName of the section
keyName of the key in section
tokensA pointer to an array of tokens to try to lookup
defvalueDefault value to return if not found
Returns
The number contained in the key or the default
NamedString* getKey ( const String sect,
const String key 
) const

Locate a key/value pair in the section.

Parameters
sectName of the section
keyName of the key in section
Returns
A pointer to the key/value pair or NULL.
NamedList* getSection ( unsigned int  index) const

Retrieve an entire section

Parameters
indexIndex of the section
Returns
The section's content or NULL if no such section
NamedList* getSection ( const String sect) const

Retrieve an entire section

Parameters
sectName of the section
Returns
The section's content or NULL if no such section
const char* getValue ( const String sect,
const String key,
const char *  defvalue = 0 
) const

Retrieve the value of a key in a section.

Parameters
sectName of the section
keyName of the key in section
defvalueDefault value to return if not found
Returns
The string contained in the key or the default
bool load ( bool  warn = true)

Load the configuration from file

Parameters
warnTrue to also warn if the configuration could not be loaded
Returns
True if successfull, false for failure
Configuration& operator= ( const String value)
inline

Assignment from string operator

References String::operator=().

bool save ( ) const

Save the configuration to file

Returns
True if successfull, false for failure
unsigned int sections ( ) const
inline

Get the number of sections

Returns
Count of sections

References ObjList::length().

void setValue ( const String sect,
const char *  key,
const char *  value = 0 
)

Set the value of a key in a section.

Parameters
sectName of the section, will be created if missing
keyName of the key in section, will be created if missing
valueValue to set in the key
void setValue ( const String sect,
const char *  key,
int  value 
)

Set the numeric value of a key in a section.

Parameters
sectName of the section, will be created if missing
keyName of the key in section, will be created if missing
valueValue to set in the key
void setValue ( const String sect,
const char *  key,
bool  value 
)

Set the boolean value of a key in a section.

Parameters
sectName of the section, will be created if missing
keyName of the key in section, will be created if missing
valueValue to set in the key

The documentation for this class was generated from the following file: