Elektra  0.8.20
Public Member Functions | List of all members
kdb::Context Class Reference

Provides a context for configuration. More...

#include <kdbcontext.hpp>

Inherits kdb::Subject.

Inherited by kdb::ThreadContext.

Public Member Functions

std::string operator[] (std::string const &layer) const
 Lookup value for a current active layer. More...
 
size_t size () const
 
void attachByName (std::string const &key_name, ValueObserver &observer)
 Attach observer using to all events given by its specification (name) More...
 
std::string evaluate (std::string const &key_name) const
 Evaluate a specification (name) and return a key name under current context. More...
 
std::string evaluate (std::string const &key_name, std::function< bool(std::string const &, std::string &, bool in_group)> const &on_layer) const
 Evaluate specification with this context. More...
 
template<typename T , typename... Args>
std::shared_ptr< Layeractivate (Args &&... args)
 Globally activate the layer. More...
 

Detailed Description

Provides a context for configuration.

Is a subject for observers.

Holds currently active layers and allows global/scoped activation of layers.

Member Function Documentation

◆ activate()

template<typename T , typename... Args>
std::shared_ptr<Layer> kdb::Context::activate ( Args &&...  args)
inline

Globally activate the layer.

Template Parameters
Tthe layer to activate
Argsthe types for the arguments to pass to layer construction
Parameters
argsthe arguments to pass to layer construction

◆ attachByName()

void kdb::Context::attachByName ( std::string const &  key_name,
ValueObserver observer 
)
inline

Attach observer using to all events given by its specification (name)

Parameters
key_namethe name with placeholders to be used for attaching
observerthe observer to attach to

◆ evaluate() [1/2]

std::string kdb::Context::evaluate ( std::string const &  key_name) const
inline

Evaluate a specification (name) and return a key name under current context.

Parameters
key_namethe name with placeholders to be evaluated

◆ evaluate() [2/2]

std::string kdb::Context::evaluate ( std::string const &  key_name,
std::function< bool(std::string const &, std::string &, bool in_group)> const &  on_layer 
) const
inline

Evaluate specification with this context.

Parameters
key_namethe keyname with placeholders to evaluate
on_layerthe function to be called for every placeholder found
on_layer is called for every layer in the
specification.
Returns
the evaluated string

◆ operator[]()

std::string kdb::Context::operator[] ( std::string const &  layer) const
inline

Lookup value for a current active layer.

Parameters
layerthe name of the requested layer
Returns
the layer

◆ size()

size_t kdb::Context::size ( ) const
inline
Returns
size of all current layers (to be used with operator[])

The documentation for this class was generated from the following file: