#include <keyval.h>
Inheritance diagram for KeyVal
Public Types | |
enum | { MaxKeywordLength = 256 } |
enum | KeyValError { OK, HasNoValue, WrongType, UnknownKeyword, OperationFailed } |
Public Methods | |
virtual | ~KeyVal () |
int | exists (const char *) |
This takes as its only argument a keyword. More... | |
int | count (const char *=0) |
If the value of a keyword is an array, then return its length. More... | |
Ref<KeyValValue> | value (const char *=0, const KeyValValue &def=KeyValValue()) |
Return the value associated with the keyword. | |
int | booleanvalue (const char *key=0, const KeyValValue &def=KeyValValueboolean()) |
Returns the boolean value (0 = false, 1 = true) of key. | |
double | doublevalue (const char *key=0, const KeyValValue &def=KeyValValuedouble()) |
Returns the double value of key. | |
float | floatvalue (const char *key=0, const KeyValValue &def=KeyValValuefloat()) |
Returns the float value of key. | |
char | charvalue (const char *key=0, const KeyValValue &def=KeyValValuechar()) |
Returns the char value of key. | |
int | intvalue (const char *key=0, const KeyValValue &def=KeyValValueint()) |
Returns the int value of key. | |
char* | pcharvalue (const char *key=0, const KeyValValue &def=KeyValValuepchar()) |
Returns a copy of the string representation of the key's value. More... | |
Ref<DescribedClass> | describedclassvalue (const char *key=0, const KeyValValue &def=KeyValValueRefDescribedClass()) |
Returns a reference to an object of type DescribedClass. | |
int | exists (const char *,int) |
int | count (const char *,int) |
int | booleanvalue (const char *,int, const KeyValValue &def=KeyValValueboolean()) |
double | doublevalue (const char *key, int, const KeyValValue &def=KeyValValuedouble()) |
float | floatvalue (const char *key, int, const KeyValValue &def=KeyValValuefloat()) |
char | charvalue (const char *key, int, const KeyValValue &def=KeyValValuechar()) |
int | intvalue (const char *key, int, const KeyValValue &def=KeyValValueint()) |
char* | pcharvalue (const char *key, int, const KeyValValue &def=KeyValValuepchar()) |
Ref<DescribedClass> | describedclassvalue (const char *key, int, const KeyValValue &def=KeyValValueRefDescribedClass()) |
int | exists (int i) |
int | count (int i) |
int | booleanvalue (int i, const KeyValValue &def=KeyValValueboolean()) |
double | doublevalue (int i, const KeyValValue &def=KeyValValuedouble()) |
float | floatvalue (int i, const KeyValValue &def=KeyValValuefloat()) |
char | charvalue (int i, const KeyValValue &def=KeyValValuechar()) |
int | intvalue (int i, const KeyValValue &def=KeyValValueint()) |
char* | pcharvalue (int i, const KeyValValue &def=KeyValValuepchar()) |
Ref<DescribedClass> | describedclassvalue (int i, const KeyValValue &def=KeyValValueRefDescribedClass()) |
int | exists (const char *,int, int) |
int | count (const char *,int, int) |
int | booleanvalue (const char *,int, int, const KeyValValue &def=KeyValValueboolean()) |
double | doublevalue (const char *key, int, int, const KeyValValue &def=KeyValValuedouble()) |
float | floatvalue (const char *key, int, int, const KeyValValue &def=KeyValValuefloat()) |
char | charvalue (const char *key, int, int, const KeyValValue &def=KeyValValuechar()) |
int | intvalue (const char *key, int, int, const KeyValValue &def=KeyValValueint()) |
char* | pcharvalue (const char *key, int, int, const KeyValValue &def=KeyValValuepchar()) |
Ref<DescribedClass> | describedclassvalue (const char *key, int, int, const KeyValValue &def=KeyValValueRefDescribedClass()) |
int | exists (int i, int j) |
int | count (int i, int j) |
int | booleanvalue (int i, int j, const KeyValValue &def=KeyValValueboolean()) |
double | doublevalue (int i, int j, const KeyValValue &def=KeyValValuedouble()) |
float | floatvalue (int i, int j, const KeyValValue &def=KeyValValuefloat()) |
char | charvalue (int i, int j, const KeyValValue &def=KeyValValuechar()) |
int | intvalue (int i, int j, const KeyValValue &def=KeyValValueint()) |
char* | pcharvalue (int i, int j, const KeyValValue &def=KeyValValuepchar()) |
Ref<DescribedClass> | describedclassvalue (int i, int j, const KeyValValue &def=KeyValValueRefDescribedClass()) |
int | Va_exists (const char *,int,...) |
int | Va_count (const char *,int,...) |
int | Va_booleanvalue (const char *,int,...) |
double | Va_doublevalue (const char *key, int,...) |
float | Va_floatvalue (const char *key, int,...) |
char | Va_charvalue (const char *key, int,...) |
int | Va_intvalue (const char *key, int,...) |
char* | Va_pcharvalue (const char *key, int,...) |
Ref<DescribedClass> | Va_describedclassvalue (const char *key, int,...) |
KeyValError | error () |
Return the current error condition. | |
const char* | errormsg (KeyValError err) |
Return a textual representation of err. | |
const char* | errormsg () |
Return a textual representation of the current error. | |
virtual void | errortrace (std::ostream &fp=ExEnv::err()) |
virtual void | dump (std::ostream &fp=ExEnv::err()) |
virtual void | print_unseen (std::ostream &fp=ExEnv::out()) |
Print keywords that were never looked at, if possible. | |
virtual int | have_unseen () |
Return 1 if there were unseen keywords, 0 if there are none, or -1 this keyval doesn't keep track of unseen keywords. | |
void | verbose (int v) |
Control printing of assignments. | |
int | verbose () const |
Returns nonzero if assignments are printed. | |
Protected Methods | |
KeyVal () | |
void | seterror (KeyValError err) |
Set the current error condition. | |
void | seterror (KeyValValue::KeyValValueError err) |
Set the current error condition. | |
virtual int | key_exists (const char *)=0 |
Ultimately called by exists. | |
virtual int | key_count (const char *=0) |
Ultimately called by count. | |
virtual Ref<KeyValValue> | key_value (const char *, const KeyValValue &def)=0 |
Ultimately called by value. | |
virtual int | key_booleanvalue (const char *,const KeyValValue &def) |
Ultimately called by booleanvalue. | |
virtual double | key_doublevalue (const char *key, const KeyValValue &def) |
Ultimately called by doublevalue. | |
virtual float | key_floatvalue (const char *key, const KeyValValue &def) |
Ultimately called by floatvalue. | |
virtual char | key_charvalue (const char *key, const KeyValValue &def) |
Ultimately called by charvalue. | |
virtual int | key_intvalue (const char *key, const KeyValValue &def) |
Ultimately called by intvalue. | |
virtual char* | key_pcharvalue (const char *key, const KeyValValue &def) |
Ultimately called by pcharvalue. | |
virtual Ref<DescribedClass> | key_describedclassvalue (const char *key, const KeyValValue &def) |
Ultimately called by describedclassvalue. | |
Protected Attributes | |
int | verbose_ |
Friends | |
class | AggregateKeyVal |
class | PrefixKeyVal |
A flexible input style and ease of use for the programmer is achieved with this method. Keywords are represented by null terminated character arrays. The keywords are organized hierarchially, in a manner similar to the way that many file systems are organized. One character is special, ":", which is used to separate the various hierarchial labels, which are referred to as "segments", in the keyword.
A convention for specifying arrays is provided by KeyVal. Each index of the array is given by appending a segment containing the character representation of the index. Thus, "array:3:4" would be a the keyword corresponding to fourth row and fifth column of "array", since indexing starts at zero.
To allow the KeyVal class to have associations that can represent data for classes, the keyword can be associated with a class as well as a value. This permits polymorphic data to be unambiguously represented by keyword/value associations. Most use of KeyVal need not be concerned with this.
|
If the value of a keyword is an array, then return its length. If no arguments are given then the top level will be checked to see if it is an array and, if so, the number of elements will be counted. |
|
This takes as its only argument a keyword. Returns 1 if the keyword has a value and 0 otherwise. |
|
Returns a copy of the string representation of the key's value. Storage for the copy is obtained with new. |