Elektra  0.8.12
Namespaces | Data Structures | Typedefs | Functions
kdb Namespace Reference

This is the main namespace for the C++ binding and libraries. More...

Namespaces

namespace  tools
 This namespace is for the libtool library.
 

Data Structures

class  KDB
 Constructs a class KDB. More...
 
class  Context
 Provides a context for configuration. More...
 
class  ThreadSubject
 Subject from Observer pattern for ThreadContext. More...
 
struct  PerContext
 A data structure that is stored by context inside the Coordinator. More...
 
class  Coordinator
 Thread safe coordination of ThreadContext per Threads. More...
 
class  none_t
 This type is being used as bottom type that always fails. More...
 
class  Layer
 Base class for all layers. More...
 
class  ValueObserver
 Base class for values to be observed. More...
 
struct  Command
 Used by contexts for callbacks (to run code using a mutex). More...
 
class  DefaultGetPolicy
 Implements lookup with spec. More...
 
class  DefaultSetPolicy
 Implements creating user/ key when key is not found. More...
 
class  Discriminator
 This technique with the PolicySelector and Discriminator is taken from the book "C++ Templates - The Complete Guide" by David Vandevoorde and Nicolai M. More...
 
class  GetPolicyIs
 Needed by the user to set one of the policies. More...
 
class  SetPolicyIs
 Needed by the user to set one of the policies. More...
 
class  ContextPolicyIs
 Needed by the user to set one of the policies. More...
 
class  WritePolicyIs
 Needed by the user to set one of the policies. More...
 
class  ObserverPolicyIs
 Needed by the user to set one of the policies. More...
 
class  LockPolicyIs
 Needed by the user to set one of the policies. More...
 
class  Key
 Key is an essential class that encapsulates key name , value and metainfo . More...
 
class  NameIterator
 For C++ forward Iteration over Names. More...
 
class  NameReverseIterator
 For C++ reverse Iteration over Names. More...
 
struct  Va
 Needed to avoid constructor ambiguity. More...
 
class  KeySet
 A keyset holds together a set of keys. More...
 
class  KeySetIterator
 For C++ forward Iteration over KeySets. More...
 
class  KeySetReverseIterator
 For C++ reverse Iteration over KeySets. More...
 

Typedefs

typedef std::unordered_map
< std::string, LayerAction > 
LayerMap
 A vector of layers.
 

Functions

bool operator< (ValueObserver const &lhs, ValueObserver const &rhs)
 Needed to put a ValueObserver in a map.
 
std::ostream & operator<< (std::ostream &os, kdb::Key const &k)
 Stream the name of a key.
 
std::istream & operator>> (std::istream &is, kdb::Key &k)
 Reads a line with a keys name.
 
std::ostream & operator<< (std::ostream &os, kdb::KeySet const &cks)
 Outputs line per line the keynames.
 
std::istream & operator>> (std::istream &is, kdb::KeySet &ks)
 Reads line per line key names and appends those keys to ks.
 

Detailed Description

This is the main namespace for the C++ binding and libraries.

Classes or Functions directly below this namespace are header-only. Sub namespaces are intended for libraries and you need to link the library if you want to use them.

Function Documentation

bool kdb::operator< ( ValueObserver const &  lhs,
ValueObserver const &  rhs 
)

Needed to put a ValueObserver in a map.

Returns
Comparision result
std::ostream& kdb::operator<< ( std::ostream &  os,
kdb::Key const &  k 
)
inline

Stream the name of a key.

If you also want to stream the value, use the plugin framework.

Parameters
osthe stream to write to
kthe key which name should be streamed
Returns
the stream
std::ostream& kdb::operator<< ( std::ostream &  os,
kdb::KeySet const &  cks 
)
inline

Outputs line per line the keynames.

To output values you should use the plugin framework.

Parameters
osthe stream to write to
cksthe keyset which should be streamed

Use unsetf(std::ios_base::skipws) or use noskipws iomanip on the stream if you want a null terminated sequence of key names.

Use setf(std::ios_base::unitbuf) on the stream if you want to flush the buffer after each key.

Returns
the stream
std::istream& kdb::operator>> ( std::istream &  is,
kdb::Key k 
)
inline

Reads a line with a keys name.

Parameters
isthe stream to read from
kthe key whose name will be set

Use unsetf(std::ios_base::skipws) on the stream if the keyname is terminated with an null character and not a newline.

Returns
the stream
std::istream& kdb::operator>> ( std::istream &  is,
kdb::KeySet ks 
)
inline

Reads line per line key names and appends those keys to ks.

To input values you need to use the plugin framework.

Parameters
isthe stream to read from
ksthe keyset to append to
Returns
the stream