home | help
sc::PrefixKeyVal(3)		      MPQC		     sc::PrefixKeyVal(3)

NAME
     sc::PrefixKeyVal  - PrefixKeyVal is a KeyVal that searches a different Key-
     Val using modified keys.

SYNOPSIS
     #include <keyval.h>

     Inherits sc::KeyVal.

   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.
     int count (const char *=0)
	 If the value of a keyword is an array, then return its length.
     Ref< KeyValValue > value (const char *=0,	const  KeyValValue  &def=KeyVal-
	 Value())
	 Return the value associated with the keyword.
     int  booleanvalue	(const	char *key=0, const KeyValValue &def=KeyValValue-
	 boolean())
	 Returns the boolean value (0 = false, 1 = true) of key.
     double doublevalue (const char *key=0, const KeyValValue  &def=KeyValValue-
	 double())
	 Returns the double value of key.
     float  floatvalue	(const	char *key=0, const KeyValValue &def=KeyValValue-
	 float())
	 Returns the float value of key.
     char  charvalue  (const  char  *key=0,  const  KeyValValue  &def=KeyValVal-
	 uechar())
	 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=KeyValValue-
	 size())
	 Returns the size_t value of key.
     char * pcharvalue (const char *key=0, const  KeyValValue  &def=KeyValValue-
	 pchar())
	 Returns a copy of the string representation of the key's value.
     std::string  stringvalue (const char *key=0, const KeyValValue &def=KeyVal-
	 Valuestring())
	 Returns a string representation of the key's value.
     Ref< DescribedClass > describedclassvalue (const char *key=0, const KeyVal-
	 Value &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=KeyValVal-
	 ueboolean())
     double doublevalue (const char *key, int i, const KeyValValue  &def=KeyVal-
	 Valuedouble())
     float floatvalue (const char *key, int i, const KeyValValue &def=KeyValVal-
	 uefloat())
     char  charvalue  (const char *key, int i, const KeyValValue &def=KeyValVal-
	 uechar())
     int intvalue (const char *key, int  i,  const  KeyValValue  &def=KeyValVal-
	 ueint())
     size_t sizevalue (const char *key, int i, const KeyValValue &def=KeyValVal-
	 uesize())
     char  *  pcharvalue (const char *key, int i, const KeyValValue &def=KeyVal-
	 Valuepchar())
     std::string  stringvalue  (const  char  *key,  int  i,  const   KeyValValue
	 &def=KeyValValuestring())
     Ref< DescribedClass > describedclassvalue (const char *key, int, const Key-
	 ValValue &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=KeyValVal-
	 ueboolean())
     double doublevalue (const char *key, int, int, const KeyValValue  &def=Key-
	 ValValuedouble())
     float floatvalue (const char *key, int, int, const KeyValValue &def=KeyVal-
	 Valuefloat())
     char  charvalue  (const char *key, int, int, const KeyValValue &def=KeyVal-
	 Valuechar())
     int intvalue (const char *key, int, int, const KeyValValue  &def=KeyValVal-
	 ueint())
     size_t sizevalue (const char *key, int, int, const KeyValValue &def=KeyVal-
	 Valuesize())
     char  *  pcharvalue (const char *key, int, int, const KeyValValue &def=Key-
	 ValValuepchar())
     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=KeyValValue-
	 boolean())
     double doublevalue (int i, int j,	const  KeyValValue  &def=KeyValValuedou-
	 ble())
     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=KeyValVal-
	 uestring())
     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 nin-
	 dex,...)
     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.
     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.

   Additional Inherited Members
     Public Types inherited from sc::KeyVal
     enum { MaxKeywordLength = 256 }
     enum  KeyValError	{  OK,	HasNoValue,  WrongType,  UnknownKeyword,  Opera-
	 tionFailed }

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

Detailed Description
     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  ar-
     guments.  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

     class A: public DescribedClass {
	double f0_;
       public:
	A(const Ref<KeyVal> &keyval): f0_(keyval->doublevalue("f0")) {}
     }
     class B: public DescribedClass {
	double f1_;
	Ref<A> a_;
       public:
	B(const Ref<KeyVal> &keyval):
	  f1_(keyval->doublevalue("f1")),
	  a_(new PrefixKeyVal(keyval,"a"))
	{}
     };

      can be used to read ParsedKeyVal input that looks like

     b<B>: (
       f1 = 1.0
       a<A>: (
	 f0 = 2.0
       )
     )

Member Function Documentation
   void sc::PrefixKeyVal::dump (std::ostream & fp = ExEnv::err0()) [virtual]
     Write a message to fp describing the error.

     Reimplemented from sc::KeyVal.

   void  sc::PrefixKeyVal::errortrace  (std::ostream & fp = ExEnv::err0()) [vir-
     tual]
     Write a message to fp describing the error.

     Reimplemented from sc::KeyVal.

Author
     Generated automatically by Doxygen for MPQC from the source code.

Version 2.3.1			 Thu Sep 3 2026 	     sc::PrefixKeyVal(3)

home | help