---
name: "kdb_tools_Plugin"
section: "3elektra"
platform: "linux"
package: "elektra-doc"
version: "0.8.7-4"
release: "Debian 8 (Jessie)"
platforms: ["linux"]
url: "https://new.carta.tech/kdb_tools_Plugin"
---

# kdb\_tools\_Plugin(3elektra)

## NAME

kdb::tools::Plugin -

## SYNOPSIS

`#include <plugin.hpp>`

### Public Member Functions

void **loadInfo** ()\
 void **parse** ()\
 void **check** (std::vector\< std::string \> &warnings)\
 std::string **lookupInfo** (std::string item, std::string section='infos')\
 bool **findInfo** (std::string **check**, std::string item, std::string section='infos')\
 **kdb::KeySet** **getInfo** ()\
 **kdb::KeySet** **getNeededConfig** ()\
 func\_t **getSymbol** (std::string which)\
 int **open** (**kdb::Key** &errorKey)\
 int **close** (**kdb::Key** &errorKey)\
 int **get** (**kdb::KeySet** &ks, **kdb::Key** &parentKey)\
 int **set** (**kdb::KeySet** &ks, **kdb::Key** &parentKey)\
 int **error** (**kdb::KeySet** &ks, **kdb::Key** &parentKey)\
 std::string **name** ()\
 std::string **refname** ()\

## 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:**

*PluginCheckException* if there are errors

**Parameters:**

*warnings* for 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::stringcheck, std::stringitem, std::stringsection = `'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()**

### kdb::KeySet kdb::tools::Plugin::getInfo ()` [inline]`

Returns the whole keyset of information.

**Precondition:**

**loadInfo()**

### kdb::KeySet kdb::tools::Plugin::getNeededConfig ()

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.

**Precondition:**

**loadInfo()**

### func\_t kdb::tools::Plugin::getSymbol (std::stringwhich)` [inline]`

Returns symbol to a function.

**Precondition:**

**parse()**

### void kdb::tools::Plugin::loadInfo ()

Gets the configuration for the plugin.

### std::string kdb::tools::Plugin::lookupInfo (std::stringitem, std::stringsection = `'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()**

### void kdb::tools::Plugin::parse ()

Creates symbol and info table.

### 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()**

## Author

Generated automatically by Doxygen for Elektra from the source code.
