Man Linux: Main Page and Category List

NAME

       sc::PrefixKeyVal -

       PrefixKeyVal is a KeyVal that searches a different KeyVal using
       modified keys.

SYNOPSIS

       #include <keyval.h>

       Inherits sc::KeyVal.

   Public Member Functions
       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.

       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)

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

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

Author

       Generated automatically by Doxygen for MPQC from the source code.