Elektra  0.8.12
Public Member Functions | Data Fields
kdb::tools::Plugin Class Reference

This is a C++ representation of a plugin. More...

#include <plugin.hpp>

Public Member Functions

void loadInfo ()
 Gets the configuration for the plugin.
void parse ()
 Creates symbol and info table.
void check (std::vector< std::string > &warnings)
 Does various checks on the Plugin and throws exceptions if something is not ok.
std::string lookupInfo (std::string item, std::string section="infos")
 Gets the whole string of an information item.
bool findInfo (std::string check, std::string item, std::string section="infos")
 Searches within a string of an information item.
kdb::KeySet getInfo ()
 Returns the whole keyset of information.
kdb::KeySet getNeededConfig ()
 In the plugin's contract there is a description of which config is needed in order to work together with a backend properly.
kdb::KeySet getConfig ()
 return the plugin config
func_t getSymbol (std::string which)
 Returns symbol to a function.
int open (kdb::Key &errorKey)
 Calls the open function of the plugin.
int close (kdb::Key &errorKey)
 Calls the close function of the plugin.
int get (kdb::KeySet &ks, kdb::Key &parentKey)
 Calls the get function of the plugin.
int set (kdb::KeySet &ks, kdb::Key &parentKey)
 Calls the set function of the plugin.
int error (kdb::KeySet &ks, kdb::Key &parentKey)
 Calls the error function of the plugin.
std::string name ()
std::string refname ()

Data Fields

bool firstRef
 Is toggled during serialization.

Detailed Description

This is a C++ representation of a plugin.

It will load an Elektra plugin using the module loader from Elektra.

Then you can either check the plugins configuration using loadInfo(), parse() and check. Symbols can then be retrieved with getSymbol().

Or you can use the normal open(), close(), get(), set() and error() API which every plugin exports.


Member Function Documentation

void kdb::tools::Plugin::check ( std::vector< std::string > &  warnings)

Does various checks on the Plugin and throws exceptions if something is not ok.

  • Check if Plugin is compatible to current Version of Backend-API.
Exceptions:
PluginCheckExceptionif there are errors
Parameters:
warningsfor warnings
Precondition:
parse()
int kdb::tools::Plugin::close ( kdb::Key errorKey)

Calls the close function of the plugin.

Precondition:
parse()
int kdb::tools::Plugin::error ( kdb::KeySet ks,
kdb::Key parentKey 
)

Calls the error function of the plugin.

Precondition:
parse()
bool kdb::tools::Plugin::findInfo ( std::string  check,
std::string  item,
std::string  section = "infos" 
)

Searches within a string of an information item.

Precondition:
loadInfo()
int kdb::tools::Plugin::get ( kdb::KeySet ks,
kdb::Key parentKey 
)

Calls the get function of the plugin.

Precondition:
parse()

return the plugin config

Returns:
the config supplied with constructor
See also:
getNeededConfig()

Returns the whole keyset of information.

Precondition:
loadInfo()

In the plugin's contract there is a description of which config is needed in order to work together with a backend properly.

Returns:
the keyset with the config needed for the backend.
See also:
getConfig()
Precondition:
loadInfo()
func_t kdb::tools::Plugin::getSymbol ( std::string  which) [inline]

Returns symbol to a function.

Precondition:
parse()
std::string kdb::tools::Plugin::lookupInfo ( std::string  item,
std::string  section = "infos" 
)

Gets the whole string of an information item.

Precondition:
loadInfo()
std::string kdb::tools::Plugin::name ( )
Returns:
the name of the plugin
int kdb::tools::Plugin::open ( kdb::Key errorKey)

Calls the open function of the plugin.

Precondition:
parse()
std::string kdb::tools::Plugin::refname ( )
Returns:
the name how it would be referred to in mountpoint
int kdb::tools::Plugin::set ( kdb::KeySet ks,
kdb::Key parentKey 
)

Calls the set function of the plugin.

Precondition:
parse()

Field Documentation

Is toggled during serialization.

(is a hack, only allows a single serialization!)


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