MPQC
2.3.1
|
PrefixKeyVal is a KeyVal that searches a different KeyVal using modified keys. More...
#include <keyval.h>
Public Member Functions | |
Constructors. | |
Construct a PrefixKeyVal, using the given prefix and indices. | |
PrefixKeyVal (const Ref< KeyVal > &, int i) | |
PrefixKeyVal (const Ref< KeyVal > &, int i, int j) | |
PrefixKeyVal (const Ref< KeyVal > &, int i, int j, int k) | |
PrefixKeyVal (const Ref< KeyVal > &, int i, int j, int k, int l) | |
PrefixKeyVal (const Ref< KeyVal > &, const char *prefix) | |
PrefixKeyVal (const Ref< KeyVal > &, const char *prefix, int i) | |
PrefixKeyVal (const Ref< KeyVal > &, const char *prefix, int i, int j) | |
PrefixKeyVal (const Ref< KeyVal > &, const char *prefix, int i, int j, int k) | |
PrefixKeyVal (const Ref< KeyVal > &, const char *prefix, int i, int j, int k, int l) | |
~PrefixKeyVal () | |
void | errortrace (std::ostream &fp=ExEnv::err0()) |
Write a message to fp describing the error. | |
void | dump (std::ostream &fp=ExEnv::err0()) |
Write a message to fp describing the error. | |
Public Member Functions inherited from sc::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. | |
size_t | sizevalue (const char *key=0, const KeyValValue &def=KeyValValuesize()) |
Returns the size_t 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... | |
std::string | stringvalue (const char *key=0, const KeyValValue &def=KeyValValuestring()) |
Returns a string representation of the key's value. | |
Ref< DescribedClass > | describedclassvalue (const char *key=0, const KeyValValue &def=KeyValValueRefDescribedClass()) |
Returns a reference to an object of type DescribedClass. | |
int | exists (const char *key, int i) |
int | count (const char *key, int i) |
int | booleanvalue (const char *key, int i, const KeyValValue &def=KeyValValueboolean()) |
double | doublevalue (const char *key, int i, const KeyValValue &def=KeyValValuedouble()) |
float | floatvalue (const char *key, int i, const KeyValValue &def=KeyValValuefloat()) |
char | charvalue (const char *key, int i, const KeyValValue &def=KeyValValuechar()) |
int | intvalue (const char *key, int i, const KeyValValue &def=KeyValValueint()) |
size_t | sizevalue (const char *key, int i, const KeyValValue &def=KeyValValuesize()) |
char * | pcharvalue (const char *key, int i, const KeyValValue &def=KeyValValuepchar()) |
std::string | stringvalue (const char *key, int i, const KeyValValue &def=KeyValValuestring()) |
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()) |
size_t | sizevalue (int i, const KeyValValue &def=KeyValValuesize()) |
char * | pcharvalue (int i, const KeyValValue &def=KeyValValuepchar()) |
std::string | stringvalue (int i, const KeyValValue &def=KeyValValuestring()) |
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()) |
size_t | sizevalue (const char *key, int, int, const KeyValValue &def=KeyValValuesize()) |
char * | pcharvalue (const char *key, int, int, const KeyValValue &def=KeyValValuepchar()) |
std::string | stringvalue (const char *key, int, int, const KeyValValue &def=KeyValValuestring()) |
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()) |
size_t | sizevalue (int i, int j, const KeyValValue &def=KeyValValuesize()) |
char * | pcharvalue (int i, int j, const KeyValValue &def=KeyValValuepchar()) |
std::string | stringvalue (int i, int j, const KeyValValue &def=KeyValValuestring()) |
Ref< DescribedClass > | describedclassvalue (int i, int j, const KeyValValue &def=KeyValValueRefDescribedClass()) |
int | Va_exists (const char *key, int nindex,...) |
int | Va_count (const char *key, int nindex,...) |
int | Va_booleanvalue (const char *key, int nindex,...) |
double | Va_doublevalue (const char *key, int nindex,...) |
float | Va_floatvalue (const char *key, int nindex,...) |
char | Va_charvalue (const char *key, int nindex,...) |
int | Va_intvalue (const char *key, int nindex,...) |
size_t | Va_sizevalue (const char *key, int nindex,...) |
char * | Va_pcharvalue (const char *key, int nindex,...) |
std::string | Va_stringvalue (const char *key, int nindex,...) |
Ref< DescribedClass > | Va_describedclassvalue (const char *key, int nindex,...) |
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 | print_unseen (std::ostream &fp=ExEnv::out0()) |
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. | |
Public Member Functions inherited from sc::RefCount | |
int | lock_ptr () const |
Lock this object. | |
int | unlock_ptr () const |
Unlock this object. | |
void | use_locks (bool inVal) |
start and stop using locks on this object | |
refcount_t | nreference () const |
Return the reference count. | |
refcount_t | reference () |
Increment the reference count and return the new count. | |
refcount_t | dereference () |
Decrement the reference count and return the new count. | |
int | managed () const |
void | unmanage () |
Turn off the reference counting mechanism for this object. More... | |
int | managed () const |
Return 1 if the object is managed. Otherwise return 0. | |
Public Member Functions inherited from sc::Identity | |
Identifier | identifier () |
Return the Identifier for this argument. More... | |
Additional Inherited Members | |
Public Types inherited from sc::KeyVal | |
enum | { MaxKeywordLength = 256 } |
enum | KeyValError { OK, HasNoValue, WrongType, UnknownKeyword, OperationFailed } |
Protected Member Functions inherited from sc::KeyVal | |
void | seterror (KeyValError err) |
Set the current error condition. | |
void | seterror (KeyValValue::KeyValValueError err) |
Set the current error condition. | |
virtual int | key_count (const char *=0) |
Ultimately called by count. | |
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 size_t | key_sizevalue (const char *key, const KeyValValue &def) |
Ultimately called by sizevalue. | |
virtual char * | key_pcharvalue (const char *key, const KeyValValue &def) |
Ultimately called by pcharvalue. | |
virtual std::string | key_stringvalue (const char *key, const KeyValValue &def) |
Ultimately called by stringvalue. | |
virtual Ref< DescribedClass > | key_describedclassvalue (const char *key, const KeyValValue &def) |
Ultimately called by describedclassvalue. | |
Protected Member Functions inherited from sc::RefCount | |
RefCount (const RefCount &) | |
RefCount & | operator= (const RefCount &) |
Protected Attributes inherited from sc::KeyVal | |
int | verbose_ |
PrefixKeyVal is a KeyVal that searches a different KeyVal using modified keys.
This is convenient for reading keys grouped together with a common prefix. Consider the following code:
sc::Ref<sc::KeyVal> keyval = new sc::PrefixKeyVal("A",original_keyval); int r = keyval->intvalue("x");
This code will assign to r the value associated with "x" in keyval. keyval will search for "x" by searching for "A::x" in original_keyval.
This class is important for implementing constructors that take KeyVal arguments. When an object is being constructed from a KeyVal, it may contain another object that must be constructed from a KeyVal. In order to let the sub-object read the correct keywords from the KeyVal, without knowledge of the containing objects keyword prefix, a PrefixKeyVal can be constructed. For example, the code
can be used to read ParsedKeyVal input that looks like
b<B>: ( f1 = 1.0 a<A>: ( f0 = 2.0 ) )