|
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
)
)