| Elektra 0.11.0

Namespaces | Classes | 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.

## Classes
struct | Command
| Used by contexts for callbacks (to run code using a mutex). More...
class | Context
| Provides a context for configuration. More...
class | ContextPolicyIs
| Needed by the user to set one of the policies. More...
class | Coordinator
| Thread safe coordination of ThreadContext per Threads. More...
class | DefaultGetPolicy
| Implements lookup with spec. More...
class | DefaultSetPolicy
| Implements creating user:/ key when key is not found. More...
class | ElektraDiff
| This class is a wrapper around the ElektraDiff C struct. More...
class | GetPolicyIs
| Needed by the user to set one of the policies. More...
class | KDB
| Constructs a class KDB. More...
class | Key
| Key is an essential class that encapsulates key name , value and metainfo . 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...
class | Layer
| Base class for all layers. More...
class | LockPolicyIs
| Needed by the user to set one of the policies. More...
class | NameIterator
| For C++ forward Iteration over Names. More...
class | NameReverseIterator
| For C++ reverse Iteration over Names. More...
class | none_t
| This type is being used as bottom type that always fails. More...
class | ObserverPolicyIs
| Needed by the user to set one of the policies. More...
struct | PerContext
| A data structure that is stored by context inside the Coordinator. More...
class | SetPolicyIs
| Needed by the user to set one of the policies. More...
class | ThreadSubject
| Subject from Observer pattern for ThreadContext. More...
struct | VaAlloc
| Needed to avoid constructor ambiguity. More...
class | ValueObserver
| Base class for values to be observed. More...
class | Wrapped
| Everything implementing this interface can be used as layer. More...
class | WritePolicyIs
| Needed by the user to set one of the policies. More...

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

## Functions
int | goptsContract (kdb::KeySet &contract, int argc, const char *const *argv, const char *const *envp, const kdb::Key &parentKey, kdb::KeySet &goptsConfig)
int | goptsContract (kdb::KeySet &contract, const std::string &argsString, const std::string &envString, const kdb::Key &parentKey, kdb::KeySet &goptsConfig)
| Prefer to use goptsContract with argc, argv and envp if possible (especially when you are calling this in your main function)
int | goptsContract (kdb::KeySet &contract, const std::vector< std::string > &args, const std::vector< std::string > &env, const kdb::Key &parentKey, kdb::KeySet &goptsConfig)
| Prefer to use goptsContract with argc, argv and envp if possible (especially when you are calling this in your main function)
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.

- See also
    kdb::tools

## Function Documentation

## ◆ goptsContract() [1/3]

int kdb::goptsContract | ( | kdb::KeySet & | contract,
|  | const std::string & | argsString,
|  | const std::string & | envString,
|  | const kdb::Key & | parentKey,
|  | kdb::KeySet & | goptsConfig
| ) |  |
| inline

Prefer to use goptsContract with argc, argv and envp if possible (especially when you are calling this in your main function)

This function mainly exists for use from language bindings.

See also
  elektraGOptsContractFromStrings

## ◆ goptsContract() [2/3]

int kdb::goptsContract | ( | kdb::KeySet & | contract,
|  | const std::vector< std::string > & | args,
|  | const std::vector< std::string > & | env,
|  | const kdb::Key & | parentKey,
|  | kdb::KeySet & | goptsConfig
| ) |  |
| inline

Prefer to use goptsContract with argc, argv and envp if possible (especially when you are calling this in your main function)

This function mainly exists for use from language bindings.

See also
  elektraGOptsContractFromStrings

## ◆ goptsContract() [3/3]

int kdb::goptsContract | ( | kdb::KeySet & | contract,
|  | int | argc,
|  | const char *const * | argv,
|  | const char *const * | envp,
|  | const kdb::Key & | parentKey,
|  | kdb::KeySet & | goptsConfig
| ) |  |
| inline

See also
  elektraGOptsContract

## ◆ operator<()

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

Needed to put a ValueObserver in a map.

Returns
  Comparison result

## ◆ operator<<() [1/2]

std::ostream & kdb::operator<< | ( | std::ostream & | os,
|  | kdb::Key const & | k
| ) |  |
| inline

Stream the name of a key.

Use setf(std::ios_base::showbase) on the stream if you want to also output all metakeys (warning, cannot be parsed back!)

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

Parameters

  os | the stream to write to
  k | the key which name should be streamed

Returns
  the stream

## ◆ operator<<() [2/2]

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

  os | the stream to write to
  cks | the 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

## ◆ operator>>() [1/2]

std::istream & kdb::operator>> | ( | std::istream & | is,
|  | kdb::Key & | k
| ) |  |
| inline

Reads a line with a keys name.

Parameters

  is | the stream to read from
  k | the 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

## ◆ operator>>() [2/2]

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

  is | the stream to read from
  ks | the keyset to append to

Returns
  the stream