\hypertarget{struct__Plugin}{
\section{\_\-Plugin Struct Reference}
\label{struct__Plugin}\index{\_\-Plugin@{\_\-Plugin}}
}


{\ttfamily \#include $<$kdbprivate.h$>$}



Collaboration diagram for \_\-Plugin:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=210pt]{struct__Plugin__coll__graph}
\end{center}
\end{figure}
\subsection*{Data Fields}
\begin{DoxyCompactItemize}
\item 
\hyperlink{struct__KeySet}{KeySet} $\ast$ \hyperlink{struct__Plugin_ab2515d2e11eec337550300d6f56a3d4b}{config}
\item 
kdbOpenPtr \hyperlink{struct__Plugin_ac9da7168ac65402b997a31a3b4a8d720}{kdbOpen}
\item 
kdbClosePtr \hyperlink{struct__Plugin_a5b0b2cc22ad5dcc7ec0eb570c2c6ff4b}{kdbClose}
\item 
kdbGetPtr \hyperlink{struct__Plugin_a0b2e0db2565e6f1d16f9b78112580a18}{kdbGet}
\item 
kdbSetPtr \hyperlink{struct__Plugin_acaa373d251ec25ff93335741ddb5b0e3}{kdbSet}
\item 
kdbErrorPtr \hyperlink{struct__Plugin_a621683acebfa6aac91c5903d8f6d653a}{kdbError}
\item 
const char $\ast$ \hyperlink{struct__Plugin_ad3ca225d725b5ae7b46754c025007a75}{name}
\item 
size\_\-t \hyperlink{struct__Plugin_a9be13e52b86cb351edd25a143d186da3}{refcounter}
\item 
void $\ast$ \hyperlink{struct__Plugin_ad2e6fd0b76939b20008e9cc046a06779}{data}
\end{DoxyCompactItemize}


\subsection{Detailed Description}
Holds all information related to a plugin.

Since Elektra 0.8 a Backend consists of many plugins.

A plugin should be reusable and only implement a single concern. Plugins which are supplied with Elektra are located below src/plugins. It is no problem that plugins are developed external too. 

\subsection{Field Documentation}
\hypertarget{struct__Plugin_ab2515d2e11eec337550300d6f56a3d4b}{
\index{\_\-Plugin@{\_\-Plugin}!config@{config}}
\index{config@{config}!_Plugin@{\_\-Plugin}}
\subsubsection[{config}]{\setlength{\rightskip}{0pt plus 5cm}{\bf KeySet}$\ast$ {\bf \_\-Plugin::config}}}
\label{struct__Plugin_ab2515d2e11eec337550300d6f56a3d4b}
This keyset contains configuration for the plugin. Direct below system/ there is the configuration supplied for the backend. Direct below user/ there is the configuration supplied just for the plugin, which should be of course prefered to the backend configuration. The keys inside contain information like /path which path should be used to write configuration to or /host to which host packets should be send. \begin{DoxySeeAlso}{See also}
\hyperlink{group__plugin_ga644bead796506c172817724051c977c9}{elektraPluginGetConfig()} 
\end{DoxySeeAlso}
\hypertarget{struct__Plugin_ad2e6fd0b76939b20008e9cc046a06779}{
\index{\_\-Plugin@{\_\-Plugin}!data@{data}}
\index{data@{data}!_Plugin@{\_\-Plugin}}
\subsubsection[{data}]{\setlength{\rightskip}{0pt plus 5cm}void$\ast$ {\bf \_\-Plugin::data}}}
\label{struct__Plugin_ad2e6fd0b76939b20008e9cc046a06779}
This handle can be used for a plugin to store any data its want to. \hypertarget{struct__Plugin_a5b0b2cc22ad5dcc7ec0eb570c2c6ff4b}{
\index{\_\-Plugin@{\_\-Plugin}!kdbClose@{kdbClose}}
\index{kdbClose@{kdbClose}!_Plugin@{\_\-Plugin}}
\subsubsection[{kdbClose}]{\setlength{\rightskip}{0pt plus 5cm}kdbClosePtr {\bf \_\-Plugin::kdbClose}}}
\label{struct__Plugin_a5b0b2cc22ad5dcc7ec0eb570c2c6ff4b}
The pointer to kdbClose\_\-template() of the backend. \hypertarget{struct__Plugin_a621683acebfa6aac91c5903d8f6d653a}{
\index{\_\-Plugin@{\_\-Plugin}!kdbError@{kdbError}}
\index{kdbError@{kdbError}!_Plugin@{\_\-Plugin}}
\subsubsection[{kdbError}]{\setlength{\rightskip}{0pt plus 5cm}kdbErrorPtr {\bf \_\-Plugin::kdbError}}}
\label{struct__Plugin_a621683acebfa6aac91c5903d8f6d653a}
The pointer to kdbError\_\-template() of the backend. \hypertarget{struct__Plugin_a0b2e0db2565e6f1d16f9b78112580a18}{
\index{\_\-Plugin@{\_\-Plugin}!kdbGet@{kdbGet}}
\index{kdbGet@{kdbGet}!_Plugin@{\_\-Plugin}}
\subsubsection[{kdbGet}]{\setlength{\rightskip}{0pt plus 5cm}kdbGetPtr {\bf \_\-Plugin::kdbGet}}}
\label{struct__Plugin_a0b2e0db2565e6f1d16f9b78112580a18}
The pointer to kdbGet\_\-template() of the backend. \hypertarget{struct__Plugin_ac9da7168ac65402b997a31a3b4a8d720}{
\index{\_\-Plugin@{\_\-Plugin}!kdbOpen@{kdbOpen}}
\index{kdbOpen@{kdbOpen}!_Plugin@{\_\-Plugin}}
\subsubsection[{kdbOpen}]{\setlength{\rightskip}{0pt plus 5cm}kdbOpenPtr {\bf \_\-Plugin::kdbOpen}}}
\label{struct__Plugin_ac9da7168ac65402b997a31a3b4a8d720}
The pointer to kdbOpen\_\-template() of the backend. \hypertarget{struct__Plugin_acaa373d251ec25ff93335741ddb5b0e3}{
\index{\_\-Plugin@{\_\-Plugin}!kdbSet@{kdbSet}}
\index{kdbSet@{kdbSet}!_Plugin@{\_\-Plugin}}
\subsubsection[{kdbSet}]{\setlength{\rightskip}{0pt plus 5cm}kdbSetPtr {\bf \_\-Plugin::kdbSet}}}
\label{struct__Plugin_acaa373d251ec25ff93335741ddb5b0e3}
The pointer to kdbSet\_\-template() of the backend. \hypertarget{struct__Plugin_ad3ca225d725b5ae7b46754c025007a75}{
\index{\_\-Plugin@{\_\-Plugin}!name@{name}}
\index{name@{name}!_Plugin@{\_\-Plugin}}
\subsubsection[{name}]{\setlength{\rightskip}{0pt plus 5cm}const char$\ast$ {\bf \_\-Plugin::name}}}
\label{struct__Plugin_ad3ca225d725b5ae7b46754c025007a75}
The name of the module responsible for that plugin. \hypertarget{struct__Plugin_a9be13e52b86cb351edd25a143d186da3}{
\index{\_\-Plugin@{\_\-Plugin}!refcounter@{refcounter}}
\index{refcounter@{refcounter}!_Plugin@{\_\-Plugin}}
\subsubsection[{refcounter}]{\setlength{\rightskip}{0pt plus 5cm}size\_\-t {\bf \_\-Plugin::refcounter}}}
\label{struct__Plugin_a9be13e52b86cb351edd25a143d186da3}
This refcounter shows how often the plugin is used. Not shared plugins have 1 in it 

The documentation for this struct was generated from the following file:\begin{DoxyCompactItemize}
\item 
kdbprivate.h\end{DoxyCompactItemize}
