\hypertarget{group__kdbnotification}{}\section{Notification}
\label{group__kdbnotification}\index{Notification@{Notification}}


Notification feature.  


\subsection*{Files}
\begin{DoxyCompactItemize}
\item 
file \hyperlink{kdbnotification_8h}{kdbnotification.\+h}
\begin{DoxyCompactList}\small\item\em Elektra-\/\+Notification structures and declarations for application developers. \end{DoxyCompactList}\item 
file \hyperlink{kdbnotificationinternal_8h}{kdbnotificationinternal.\+h}
\begin{DoxyCompactList}\small\item\em Elektra-\/\+Notification structures and declarations for developing notification and transport plugins. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Typedefs}
\begin{DoxyCompactItemize}
\item 
typedef void($\ast$ \hyperlink{group__kdbnotification_gaad19fb981cad906eb9c72bd602c7bb64}{Elektra\+Notification\+Conversion\+Error\+Callback}) (Key $\ast$key, void $\ast$context)
\begin{DoxyCompactList}\small\item\em Callback function called when string to number conversion failed. \end{DoxyCompactList}\item 
typedef void($\ast$ \hyperlink{group__kdbnotification_gad0d800e32a72d89780321e5723301eb9}{Elektra\+Notification\+Change\+Callback}) (Key $\ast$key, void $\ast$context)
\begin{DoxyCompactList}\small\item\em Callback function for key changes. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Functions}
\begin{DoxyCompactItemize}
\item 
int \hyperlink{group__kdbnotification_gab42738703162b3769b1336dcade47b18}{elektra\+Notification\+Register\+Callback} (K\+DB $\ast$kdb, Key $\ast$key, \hyperlink{group__kdbnotification_gad0d800e32a72d89780321e5723301eb9}{Elektra\+Notification\+Change\+Callback} callback, void $\ast$context)
\begin{DoxyCompactList}\small\item\em Subscribe for updates via callback when a given key value is changed. \end{DoxyCompactList}\item 
int \hyperlink{group__kdbnotification_ga374edd4f4fff527d6511ce4d0df62681}{elektra\+Notification\+Register\+Callback\+Same\+Or\+Below} (K\+DB $\ast$kdb, Key $\ast$key, \hyperlink{group__kdbnotification_gad0d800e32a72d89780321e5723301eb9}{Elektra\+Notification\+Change\+Callback} callback, void $\ast$context)
\begin{DoxyCompactList}\small\item\em Subscribe for updates via callback when a given key or a key below changed. \end{DoxyCompactList}\end{DoxyCompactItemize}
\begin{DoxyCompactItemize}
\item 
int \hyperlink{group__kdbnotification_ga362d557489c4199f6c765480a8a3cade}{elektra\+Notification\+Register\+Int} (K\+DB $\ast$kdb, Key $\ast$key, int $\ast$variable)
\begin{DoxyCompactList}\small\item\em Subscribe for automatic updates to a given variable when the given key value is changed. \end{DoxyCompactList}\item 
int \hyperlink{group__kdbnotification_ga940c1014f72e01b4145c418e87efa492}{elektra\+Notification\+Register\+Unsigned\+Int} (K\+DB $\ast$kdb, Key $\ast$key, unsigned int $\ast$variable)
\begin{DoxyCompactList}\small\item\em Subscribe for automatic updates to a given variable when the given key value is changed. \end{DoxyCompactList}\item 
int \hyperlink{group__kdbnotification_ga1130c58dc89f5838ca1c7d625e04bc92}{elektra\+Notification\+Register\+Long} (K\+DB $\ast$kdb, Key $\ast$key, long $\ast$variable)
\begin{DoxyCompactList}\small\item\em Subscribe for automatic updates to a given variable when the given key value is changed. \end{DoxyCompactList}\item 
int \hyperlink{group__kdbnotification_ga8ba57c05dcd561b266f3a32aa687d4ea}{elektra\+Notification\+Register\+Unsigned\+Long} (K\+DB $\ast$kdb, Key $\ast$key, unsigned long $\ast$variable)
\begin{DoxyCompactList}\small\item\em Subscribe for automatic updates to a given variable when the given key value is changed. \end{DoxyCompactList}\item 
int \hyperlink{group__kdbnotification_ga59593e7b3b2b5e32ec0d5cf611e3704c}{elektra\+Notification\+Register\+Long\+Long} (K\+DB $\ast$kdb, Key $\ast$key, long long $\ast$variable)
\begin{DoxyCompactList}\small\item\em Subscribe for automatic updates to a given variable when the given key value is changed. \end{DoxyCompactList}\item 
int \hyperlink{group__kdbnotification_ga69673c57ef694bb6d5d383eaf89750dd}{elektra\+Notification\+Register\+Unsigned\+Long\+Long} (K\+DB $\ast$kdb, Key $\ast$key, unsigned long long $\ast$variable)
\begin{DoxyCompactList}\small\item\em Subscribe for automatic updates to a given variable when the given key value is changed. \end{DoxyCompactList}\item 
int \hyperlink{group__kdbnotification_gad4edf91428d39b3255dffd4b01bc0754}{elektra\+Notification\+Register\+Float} (K\+DB $\ast$kdb, Key $\ast$key, float $\ast$variable)
\begin{DoxyCompactList}\small\item\em Subscribe for automatic updates to a given variable when the given key value is changed. \end{DoxyCompactList}\item 
int \hyperlink{group__kdbnotification_ga03367f9caa0b6cce1579bc5d690729f4}{elektra\+Notification\+Register\+Double} (K\+DB $\ast$kdb, Key $\ast$key, double $\ast$variable)
\begin{DoxyCompactList}\small\item\em Subscribe for automatic updates to a given variable when the given key value is changed. \end{DoxyCompactList}\item 
int \hyperlink{group__kdbnotification_gae6546ac973124e44c456f945086b6c3a}{elektra\+Notification\+Register\+Kdb\+Boolean} (K\+DB $\ast$kdb, Key $\ast$key, kdb\+\_\+boolean\+\_\+t $\ast$variable)
\begin{DoxyCompactList}\small\item\em Subscribe for automatic updates to a given variable when the given key value is changed. \end{DoxyCompactList}\item 
int \hyperlink{group__kdbnotification_ga3a7d85507eb0afcdbf2598b9bf03b819}{elektra\+Notification\+Register\+Kdb\+Char} (K\+DB $\ast$kdb, Key $\ast$key, kdb\+\_\+char\+\_\+t $\ast$variable)
\begin{DoxyCompactList}\small\item\em Subscribe for automatic updates to a given variable when the given key value is changed. \end{DoxyCompactList}\item 
int \hyperlink{group__kdbnotification_ga5f969cbf9fc58f199c91d03d2bed8e56}{elektra\+Notification\+Register\+Kdb\+Octet} (K\+DB $\ast$kdb, Key $\ast$key, kdb\+\_\+octet\+\_\+t $\ast$variable)
\begin{DoxyCompactList}\small\item\em Subscribe for automatic updates to a given variable when the given key value is changed. \end{DoxyCompactList}\item 
int \hyperlink{group__kdbnotification_ga2cb436f9f56b117aed93af70d88cc29c}{elektra\+Notification\+Register\+Kdb\+Short} (K\+DB $\ast$kdb, Key $\ast$key, kdb\+\_\+short\+\_\+t $\ast$variable)
\begin{DoxyCompactList}\small\item\em Subscribe for automatic updates to a given variable when the given key value is changed. \end{DoxyCompactList}\item 
int \hyperlink{group__kdbnotification_ga94b47b5810894136bbdd73279ad45490}{elektra\+Notification\+Register\+Kdb\+Unsigned\+Short} (K\+DB $\ast$kdb, Key $\ast$key, kdb\+\_\+unsigned\+\_\+short\+\_\+t $\ast$variable)
\begin{DoxyCompactList}\small\item\em Subscribe for automatic updates to a given variable when the given key value is changed. \end{DoxyCompactList}\item 
int \hyperlink{group__kdbnotification_ga6c3c7e2dec0a4087ccd434bb478384d7}{elektra\+Notification\+Register\+Kdb\+Long} (K\+DB $\ast$kdb, Key $\ast$key, kdb\+\_\+long\+\_\+t $\ast$variable)
\begin{DoxyCompactList}\small\item\em Subscribe for automatic updates to a given variable when the given key value is changed. \end{DoxyCompactList}\item 
int \hyperlink{group__kdbnotification_ga450849bc96f30c5ececac2d0dda51b4e}{elektra\+Notification\+Register\+Kdb\+Unsigned\+Long} (K\+DB $\ast$kdb, Key $\ast$key, kdb\+\_\+unsigned\+\_\+long\+\_\+t $\ast$variable)
\begin{DoxyCompactList}\small\item\em Subscribe for automatic updates to a given variable when the given key value is changed. \end{DoxyCompactList}\item 
int \hyperlink{group__kdbnotification_ga58fdd6f2ce8237ff21687112076800ca}{elektra\+Notification\+Register\+Kdb\+Long\+Long} (K\+DB $\ast$kdb, Key $\ast$key, kdb\+\_\+long\+\_\+long\+\_\+t $\ast$variable)
\begin{DoxyCompactList}\small\item\em Subscribe for automatic updates to a given variable when the given key value is changed. \end{DoxyCompactList}\item 
int \hyperlink{group__kdbnotification_gad375d4f6b35be2034bb3fa86ca5d8b49}{elektra\+Notification\+Register\+Kdb\+Unsigned\+Long\+Long} (K\+DB $\ast$kdb, Key $\ast$key, kdb\+\_\+unsigned\+\_\+long\+\_\+long\+\_\+t $\ast$variable)
\begin{DoxyCompactList}\small\item\em Subscribe for automatic updates to a given variable when the given key value is changed. \end{DoxyCompactList}\item 
int \hyperlink{group__kdbnotification_ga6c83faa92467ece80470e7898dc7d08b}{elektra\+Notification\+Register\+Kdb\+Float} (K\+DB $\ast$kdb, Key $\ast$key, kdb\+\_\+float\+\_\+t $\ast$variable)
\begin{DoxyCompactList}\small\item\em Subscribe for automatic updates to a given variable when the given key value is changed. \end{DoxyCompactList}\item 
int \hyperlink{group__kdbnotification_ga99a142068ed614d7cb8b177e3b6920e4}{elektra\+Notification\+Register\+Kdb\+Double} (K\+DB $\ast$kdb, Key $\ast$key, kdb\+\_\+double\+\_\+t $\ast$variable)
\begin{DoxyCompactList}\small\item\em Subscribe for automatic updates to a given variable when the given key value is changed. \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
Notification feature. 

For an introduction to notifications please see the \href{doc_tutorials_notifications_md.html}{\tt Notification Tutorial}.

Examples\+:


\begin{DoxyItemize}
\item \href{https://www.libelektra.org/examples/notificationpolling}{\tt Basic notifications using polling}
\item \href{https://www.libelektra.org/examples/notificationasync}{\tt Using asynchronous I/O bindings}
\item \href{https://www.libelektra.org/examples/notificationreload}{\tt Reload K\+DB when Elektra\textquotesingle{}s configuration has changed}
\end{DoxyItemize}

\begin{DoxyParagraph}{Global Mounting}

\end{DoxyParagraph}
\hyperlink{kdbnotification_8h_ad9290f444f315d3eac3f7cfdaf4efcda}{elektra\+Notification\+Contract()} returns a contract for use with \hyperlink{group__kdb_ga844e1299a84c3fbf1d3a905c5c893ba5}{kdb\+Open()}. The contract ensures that the internalnotification plugin is mounted and configured correctly.

The internalnotification plugin is mounted at its defined positions (see \href{https://www.libelektra.org/plugins/internalnotification}{\tt its plugin docs}).


\begin{DoxyItemize}
\item If there is no plugin mounted at a required position the internalnotification plugin is mounted at this position.
\item In the default configuration or when mounting a plugin globally using {\ttfamily kdb global-\/mount} the \href{https://www.libelektra.org/plugins/list}{\tt list plugin} is mounted at all positions. This plugin allows to mount multiple plugins at a position. If this plugin is present at a position the internalnotification plugin is added to the list plugin\textquotesingle{}s configuration at run-\/time.
\item If another plugin is mounted at a desired position the configuration is considered broken and mounting is aborted. The list plugin requires to be mounted at all positions in order to keep track of the current position and call plugins accordingly.
\end{DoxyItemize}

\begin{DoxyParagraph}{Transport Plugins}

\end{DoxyParagraph}
Notification transport plugins (or simply transport plugins) need access to an I/O binding, as well as a notification callback and context.

All of these can be retrieved from the global keyset. The keys are as follows\+:
\begin{DoxyItemize}
\item I/O binding\+: {\ttfamily system\+:/elektra/io/binding} Type\+: {\ttfamily Elektra\+Io\+Interface $\ast$}
\item Callback\+: {\ttfamily system\+:/elektra/notification/callback} Type\+: {\ttfamily Elektra\+Notification\+Callback}
\item Context\+: {\ttfamily system\+:/elektra/notification/context} Type\+: {\ttfamily Elektra\+Notification\+Callback\+Context $\ast$}
\end{DoxyItemize}

All of these keys are binary and store a pointer that can be read via {\ttfamily $\ast$(T\+Y\+PE $\ast$$\ast$) key\+Value (key)}.

The I/O binding can be accessed at any time. It is recommended, plugins read the key once during their {\ttfamily open} function and store the pointer in their plugin data struct.

The notification callback and context are provided by the {\ttfamily internalnotification} plugin. Since it might be initialised after the transport plugin, it is not recommended to read the callback and context in the {\ttfamily open} function. Instead the plugin should read and store the values when the first notification is processed.

Transport plugins should handle missing I/O bindings, notification callbacks and notification contexts gracefully. The plugin should not report and error and instead simply log a debug or warning message. 

\subsection{Typedef Documentation}
\mbox{\Hypertarget{group__kdbnotification_gad0d800e32a72d89780321e5723301eb9}\label{group__kdbnotification_gad0d800e32a72d89780321e5723301eb9}} 
\index{Notification@{Notification}!Elektra\+Notification\+Change\+Callback@{Elektra\+Notification\+Change\+Callback}}
\index{Elektra\+Notification\+Change\+Callback@{Elektra\+Notification\+Change\+Callback}!Notification@{Notification}}
\subsubsection{\texorpdfstring{Elektra\+Notification\+Change\+Callback}{ElektraNotificationChangeCallback}}
{\footnotesize\ttfamily typedef void($\ast$ Elektra\+Notification\+Change\+Callback) (Key $\ast$key, void $\ast$context)}



Callback function for key changes. 


\begin{DoxyParams}{Parameters}
{\em key} & changed key \\
\hline
{\em context} & user supplied callback context \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{group__kdbnotification_gaad19fb981cad906eb9c72bd602c7bb64}\label{group__kdbnotification_gaad19fb981cad906eb9c72bd602c7bb64}} 
\index{Notification@{Notification}!Elektra\+Notification\+Conversion\+Error\+Callback@{Elektra\+Notification\+Conversion\+Error\+Callback}}
\index{Elektra\+Notification\+Conversion\+Error\+Callback@{Elektra\+Notification\+Conversion\+Error\+Callback}!Notification@{Notification}}
\subsubsection{\texorpdfstring{Elektra\+Notification\+Conversion\+Error\+Callback}{ElektraNotificationConversionErrorCallback}}
{\footnotesize\ttfamily typedef void($\ast$ Elektra\+Notification\+Conversion\+Error\+Callback) (Key $\ast$key, void $\ast$context)}



Callback function called when string to number conversion failed. 


\begin{DoxyParams}{Parameters}
{\em key} & key with invalid value \\
\hline
{\em context} & user supplied callback context \\
\hline
\end{DoxyParams}


\subsection{Function Documentation}
\mbox{\Hypertarget{group__kdbnotification_gab42738703162b3769b1336dcade47b18}\label{group__kdbnotification_gab42738703162b3769b1336dcade47b18}} 
\index{Notification@{Notification}!elektra\+Notification\+Register\+Callback@{elektra\+Notification\+Register\+Callback}}
\index{elektra\+Notification\+Register\+Callback@{elektra\+Notification\+Register\+Callback}!Notification@{Notification}}
\subsubsection{\texorpdfstring{elektra\+Notification\+Register\+Callback()}{elektraNotificationRegisterCallback()}}
{\footnotesize\ttfamily int elektra\+Notification\+Register\+Callback (\begin{DoxyParamCaption}\item[{K\+DB $\ast$}]{kdb,  }\item[{Key $\ast$}]{key,  }\item[{\hyperlink{group__kdbnotification_gad0d800e32a72d89780321e5723301eb9}{Elektra\+Notification\+Change\+Callback}}]{callback,  }\item[{void $\ast$}]{context }\end{DoxyParamCaption})}



Subscribe for updates via callback when a given key value is changed. 


\begin{DoxyParams}{Parameters}
{\em handle} & plugin handle \\
\hline
{\em key} & key to watch for changes \\
\hline
{\em callback} & callback function \\
\hline
{\em context} & user supplied context passed to callback function\\
\hline
\end{DoxyParams}

\begin{DoxyRetVals}{Return values}
{\em 1} & on success \\
\hline
{\em 0} & on failure \\
\hline
\end{DoxyRetVals}
\mbox{\Hypertarget{group__kdbnotification_ga374edd4f4fff527d6511ce4d0df62681}\label{group__kdbnotification_ga374edd4f4fff527d6511ce4d0df62681}} 
\index{Notification@{Notification}!elektra\+Notification\+Register\+Callback\+Same\+Or\+Below@{elektra\+Notification\+Register\+Callback\+Same\+Or\+Below}}
\index{elektra\+Notification\+Register\+Callback\+Same\+Or\+Below@{elektra\+Notification\+Register\+Callback\+Same\+Or\+Below}!Notification@{Notification}}
\subsubsection{\texorpdfstring{elektra\+Notification\+Register\+Callback\+Same\+Or\+Below()}{elektraNotificationRegisterCallbackSameOrBelow()}}
{\footnotesize\ttfamily int elektra\+Notification\+Register\+Callback\+Same\+Or\+Below (\begin{DoxyParamCaption}\item[{K\+DB $\ast$}]{kdb,  }\item[{Key $\ast$}]{key,  }\item[{\hyperlink{group__kdbnotification_gad0d800e32a72d89780321e5723301eb9}{Elektra\+Notification\+Change\+Callback}}]{callback,  }\item[{void $\ast$}]{context }\end{DoxyParamCaption})}



Subscribe for updates via callback when a given key or a key below changed. 


\begin{DoxyParams}{Parameters}
{\em handle} & plugin handle \\
\hline
{\em key} & key to watch for changes \\
\hline
{\em callback} & callback function \\
\hline
{\em context} & user supplied context passed to callback function\\
\hline
\end{DoxyParams}

\begin{DoxyRetVals}{Return values}
{\em 1} & on success \\
\hline
{\em 0} & on failure \\
\hline
\end{DoxyRetVals}
\mbox{\Hypertarget{group__kdbnotification_ga03367f9caa0b6cce1579bc5d690729f4}\label{group__kdbnotification_ga03367f9caa0b6cce1579bc5d690729f4}} 
\index{Notification@{Notification}!elektra\+Notification\+Register\+Double@{elektra\+Notification\+Register\+Double}}
\index{elektra\+Notification\+Register\+Double@{elektra\+Notification\+Register\+Double}!Notification@{Notification}}
\subsubsection{\texorpdfstring{elektra\+Notification\+Register\+Double()}{elektraNotificationRegisterDouble()}}
{\footnotesize\ttfamily int elektra\+Notification\+Register\+Double (\begin{DoxyParamCaption}\item[{K\+DB $\ast$}]{kdb,  }\item[{Key $\ast$}]{key,  }\item[{double $\ast$}]{variable }\end{DoxyParamCaption})}



Subscribe for automatic updates to a given variable when the given key value is changed. 

On kdb\+Get iff the key is present and its content is valid, the registered variable is updated.


\begin{DoxyParams}{Parameters}
{\em handle} & plugin handle \\
\hline
{\em key} & key to watch for changes \\
\hline
{\em variable} & variable\\
\hline
\end{DoxyParams}

\begin{DoxyRetVals}{Return values}
{\em 1} & on success \\
\hline
{\em 0} & on failure\\
\hline
\end{DoxyRetVals}
\mbox{\Hypertarget{group__kdbnotification_gad4edf91428d39b3255dffd4b01bc0754}\label{group__kdbnotification_gad4edf91428d39b3255dffd4b01bc0754}} 
\index{Notification@{Notification}!elektra\+Notification\+Register\+Float@{elektra\+Notification\+Register\+Float}}
\index{elektra\+Notification\+Register\+Float@{elektra\+Notification\+Register\+Float}!Notification@{Notification}}
\subsubsection{\texorpdfstring{elektra\+Notification\+Register\+Float()}{elektraNotificationRegisterFloat()}}
{\footnotesize\ttfamily int elektra\+Notification\+Register\+Float (\begin{DoxyParamCaption}\item[{K\+DB $\ast$}]{kdb,  }\item[{Key $\ast$}]{key,  }\item[{float $\ast$}]{variable }\end{DoxyParamCaption})}



Subscribe for automatic updates to a given variable when the given key value is changed. 

On kdb\+Get iff the key is present and its content is valid, the registered variable is updated.


\begin{DoxyParams}{Parameters}
{\em handle} & plugin handle \\
\hline
{\em key} & key to watch for changes \\
\hline
{\em variable} & variable\\
\hline
\end{DoxyParams}

\begin{DoxyRetVals}{Return values}
{\em 1} & on success \\
\hline
{\em 0} & on failure\\
\hline
\end{DoxyRetVals}
\mbox{\Hypertarget{group__kdbnotification_ga362d557489c4199f6c765480a8a3cade}\label{group__kdbnotification_ga362d557489c4199f6c765480a8a3cade}} 
\index{Notification@{Notification}!elektra\+Notification\+Register\+Int@{elektra\+Notification\+Register\+Int}}
\index{elektra\+Notification\+Register\+Int@{elektra\+Notification\+Register\+Int}!Notification@{Notification}}
\subsubsection{\texorpdfstring{elektra\+Notification\+Register\+Int()}{elektraNotificationRegisterInt()}}
{\footnotesize\ttfamily int elektra\+Notification\+Register\+Int (\begin{DoxyParamCaption}\item[{K\+DB $\ast$}]{kdb,  }\item[{Key $\ast$}]{key,  }\item[{int $\ast$}]{variable }\end{DoxyParamCaption})}



Subscribe for automatic updates to a given variable when the given key value is changed. 

On kdb\+Get iff the key is present and its content is valid, the registered variable is updated.


\begin{DoxyParams}{Parameters}
{\em handle} & plugin handle \\
\hline
{\em key} & key to watch for changes \\
\hline
{\em variable} & variable\\
\hline
\end{DoxyParams}

\begin{DoxyRetVals}{Return values}
{\em 1} & on success \\
\hline
{\em 0} & on failure\+Subscribe for automatic updates to a given variable when the given key value is changed. On kdb\+Get iff the key is present and its content is valid, the registered variable is updated.\\
\hline
\end{DoxyRetVals}

\begin{DoxyParams}{Parameters}
{\em handle} & plugin handle \\
\hline
{\em key} & key to watch for changes \\
\hline
{\em variable} & variable\\
\hline
\end{DoxyParams}

\begin{DoxyRetVals}{Return values}
{\em 1} & on success \\
\hline
{\em 0} & on failure\\
\hline
\end{DoxyRetVals}
\mbox{\Hypertarget{group__kdbnotification_gae6546ac973124e44c456f945086b6c3a}\label{group__kdbnotification_gae6546ac973124e44c456f945086b6c3a}} 
\index{Notification@{Notification}!elektra\+Notification\+Register\+Kdb\+Boolean@{elektra\+Notification\+Register\+Kdb\+Boolean}}
\index{elektra\+Notification\+Register\+Kdb\+Boolean@{elektra\+Notification\+Register\+Kdb\+Boolean}!Notification@{Notification}}
\subsubsection{\texorpdfstring{elektra\+Notification\+Register\+Kdb\+Boolean()}{elektraNotificationRegisterKdbBoolean()}}
{\footnotesize\ttfamily int elektra\+Notification\+Register\+Kdb\+Boolean (\begin{DoxyParamCaption}\item[{K\+DB $\ast$}]{kdb,  }\item[{Key $\ast$}]{key,  }\item[{kdb\+\_\+boolean\+\_\+t $\ast$}]{variable }\end{DoxyParamCaption})}



Subscribe for automatic updates to a given variable when the given key value is changed. 

On kdb\+Get iff the key is present and its content is valid, the registered variable is updated.


\begin{DoxyParams}{Parameters}
{\em handle} & plugin handle \\
\hline
{\em key} & key to watch for changes \\
\hline
{\em variable} & variable\\
\hline
\end{DoxyParams}

\begin{DoxyRetVals}{Return values}
{\em 1} & on success \\
\hline
{\em 0} & on failure\\
\hline
\end{DoxyRetVals}
\mbox{\Hypertarget{group__kdbnotification_ga3a7d85507eb0afcdbf2598b9bf03b819}\label{group__kdbnotification_ga3a7d85507eb0afcdbf2598b9bf03b819}} 
\index{Notification@{Notification}!elektra\+Notification\+Register\+Kdb\+Char@{elektra\+Notification\+Register\+Kdb\+Char}}
\index{elektra\+Notification\+Register\+Kdb\+Char@{elektra\+Notification\+Register\+Kdb\+Char}!Notification@{Notification}}
\subsubsection{\texorpdfstring{elektra\+Notification\+Register\+Kdb\+Char()}{elektraNotificationRegisterKdbChar()}}
{\footnotesize\ttfamily int elektra\+Notification\+Register\+Kdb\+Char (\begin{DoxyParamCaption}\item[{K\+DB $\ast$}]{kdb,  }\item[{Key $\ast$}]{key,  }\item[{kdb\+\_\+char\+\_\+t $\ast$}]{variable }\end{DoxyParamCaption})}



Subscribe for automatic updates to a given variable when the given key value is changed. 

On kdb\+Get iff the key is present and its content is valid, the registered variable is updated.


\begin{DoxyParams}{Parameters}
{\em handle} & plugin handle \\
\hline
{\em key} & key to watch for changes \\
\hline
{\em variable} & variable\\
\hline
\end{DoxyParams}

\begin{DoxyRetVals}{Return values}
{\em 1} & on success \\
\hline
{\em 0} & on failure\\
\hline
\end{DoxyRetVals}
\mbox{\Hypertarget{group__kdbnotification_ga99a142068ed614d7cb8b177e3b6920e4}\label{group__kdbnotification_ga99a142068ed614d7cb8b177e3b6920e4}} 
\index{Notification@{Notification}!elektra\+Notification\+Register\+Kdb\+Double@{elektra\+Notification\+Register\+Kdb\+Double}}
\index{elektra\+Notification\+Register\+Kdb\+Double@{elektra\+Notification\+Register\+Kdb\+Double}!Notification@{Notification}}
\subsubsection{\texorpdfstring{elektra\+Notification\+Register\+Kdb\+Double()}{elektraNotificationRegisterKdbDouble()}}
{\footnotesize\ttfamily int elektra\+Notification\+Register\+Kdb\+Double (\begin{DoxyParamCaption}\item[{K\+DB $\ast$}]{kdb,  }\item[{Key $\ast$}]{key,  }\item[{kdb\+\_\+double\+\_\+t $\ast$}]{variable }\end{DoxyParamCaption})}



Subscribe for automatic updates to a given variable when the given key value is changed. 

On kdb\+Get iff the key is present and its content is valid, the registered variable is updated.


\begin{DoxyParams}{Parameters}
{\em handle} & plugin handle \\
\hline
{\em key} & key to watch for changes \\
\hline
{\em variable} & variable\\
\hline
\end{DoxyParams}

\begin{DoxyRetVals}{Return values}
{\em 1} & on success \\
\hline
{\em 0} & on failure\\
\hline
\end{DoxyRetVals}
\mbox{\Hypertarget{group__kdbnotification_ga6c83faa92467ece80470e7898dc7d08b}\label{group__kdbnotification_ga6c83faa92467ece80470e7898dc7d08b}} 
\index{Notification@{Notification}!elektra\+Notification\+Register\+Kdb\+Float@{elektra\+Notification\+Register\+Kdb\+Float}}
\index{elektra\+Notification\+Register\+Kdb\+Float@{elektra\+Notification\+Register\+Kdb\+Float}!Notification@{Notification}}
\subsubsection{\texorpdfstring{elektra\+Notification\+Register\+Kdb\+Float()}{elektraNotificationRegisterKdbFloat()}}
{\footnotesize\ttfamily int elektra\+Notification\+Register\+Kdb\+Float (\begin{DoxyParamCaption}\item[{K\+DB $\ast$}]{kdb,  }\item[{Key $\ast$}]{key,  }\item[{kdb\+\_\+float\+\_\+t $\ast$}]{variable }\end{DoxyParamCaption})}



Subscribe for automatic updates to a given variable when the given key value is changed. 

On kdb\+Get iff the key is present and its content is valid, the registered variable is updated.


\begin{DoxyParams}{Parameters}
{\em handle} & plugin handle \\
\hline
{\em key} & key to watch for changes \\
\hline
{\em variable} & variable\\
\hline
\end{DoxyParams}

\begin{DoxyRetVals}{Return values}
{\em 1} & on success \\
\hline
{\em 0} & on failure\\
\hline
\end{DoxyRetVals}
\mbox{\Hypertarget{group__kdbnotification_ga6c3c7e2dec0a4087ccd434bb478384d7}\label{group__kdbnotification_ga6c3c7e2dec0a4087ccd434bb478384d7}} 
\index{Notification@{Notification}!elektra\+Notification\+Register\+Kdb\+Long@{elektra\+Notification\+Register\+Kdb\+Long}}
\index{elektra\+Notification\+Register\+Kdb\+Long@{elektra\+Notification\+Register\+Kdb\+Long}!Notification@{Notification}}
\subsubsection{\texorpdfstring{elektra\+Notification\+Register\+Kdb\+Long()}{elektraNotificationRegisterKdbLong()}}
{\footnotesize\ttfamily int elektra\+Notification\+Register\+Kdb\+Long (\begin{DoxyParamCaption}\item[{K\+DB $\ast$}]{kdb,  }\item[{Key $\ast$}]{key,  }\item[{kdb\+\_\+long\+\_\+t $\ast$}]{variable }\end{DoxyParamCaption})}



Subscribe for automatic updates to a given variable when the given key value is changed. 

On kdb\+Get iff the key is present and its content is valid, the registered variable is updated.


\begin{DoxyParams}{Parameters}
{\em handle} & plugin handle \\
\hline
{\em key} & key to watch for changes \\
\hline
{\em variable} & variable\\
\hline
\end{DoxyParams}

\begin{DoxyRetVals}{Return values}
{\em 1} & on success \\
\hline
{\em 0} & on failure\\
\hline
\end{DoxyRetVals}
\mbox{\Hypertarget{group__kdbnotification_ga58fdd6f2ce8237ff21687112076800ca}\label{group__kdbnotification_ga58fdd6f2ce8237ff21687112076800ca}} 
\index{Notification@{Notification}!elektra\+Notification\+Register\+Kdb\+Long\+Long@{elektra\+Notification\+Register\+Kdb\+Long\+Long}}
\index{elektra\+Notification\+Register\+Kdb\+Long\+Long@{elektra\+Notification\+Register\+Kdb\+Long\+Long}!Notification@{Notification}}
\subsubsection{\texorpdfstring{elektra\+Notification\+Register\+Kdb\+Long\+Long()}{elektraNotificationRegisterKdbLongLong()}}
{\footnotesize\ttfamily int elektra\+Notification\+Register\+Kdb\+Long\+Long (\begin{DoxyParamCaption}\item[{K\+DB $\ast$}]{kdb,  }\item[{Key $\ast$}]{key,  }\item[{kdb\+\_\+long\+\_\+long\+\_\+t $\ast$}]{variable }\end{DoxyParamCaption})}



Subscribe for automatic updates to a given variable when the given key value is changed. 

On kdb\+Get iff the key is present and its content is valid, the registered variable is updated.


\begin{DoxyParams}{Parameters}
{\em handle} & plugin handle \\
\hline
{\em key} & key to watch for changes \\
\hline
{\em variable} & variable\\
\hline
\end{DoxyParams}

\begin{DoxyRetVals}{Return values}
{\em 1} & on success \\
\hline
{\em 0} & on failure\\
\hline
\end{DoxyRetVals}
\mbox{\Hypertarget{group__kdbnotification_ga5f969cbf9fc58f199c91d03d2bed8e56}\label{group__kdbnotification_ga5f969cbf9fc58f199c91d03d2bed8e56}} 
\index{Notification@{Notification}!elektra\+Notification\+Register\+Kdb\+Octet@{elektra\+Notification\+Register\+Kdb\+Octet}}
\index{elektra\+Notification\+Register\+Kdb\+Octet@{elektra\+Notification\+Register\+Kdb\+Octet}!Notification@{Notification}}
\subsubsection{\texorpdfstring{elektra\+Notification\+Register\+Kdb\+Octet()}{elektraNotificationRegisterKdbOctet()}}
{\footnotesize\ttfamily int elektra\+Notification\+Register\+Kdb\+Octet (\begin{DoxyParamCaption}\item[{K\+DB $\ast$}]{kdb,  }\item[{Key $\ast$}]{key,  }\item[{kdb\+\_\+octet\+\_\+t $\ast$}]{variable }\end{DoxyParamCaption})}



Subscribe for automatic updates to a given variable when the given key value is changed. 

On kdb\+Get iff the key is present and its content is valid, the registered variable is updated.


\begin{DoxyParams}{Parameters}
{\em handle} & plugin handle \\
\hline
{\em key} & key to watch for changes \\
\hline
{\em variable} & variable\\
\hline
\end{DoxyParams}

\begin{DoxyRetVals}{Return values}
{\em 1} & on success \\
\hline
{\em 0} & on failure\\
\hline
\end{DoxyRetVals}
\mbox{\Hypertarget{group__kdbnotification_ga2cb436f9f56b117aed93af70d88cc29c}\label{group__kdbnotification_ga2cb436f9f56b117aed93af70d88cc29c}} 
\index{Notification@{Notification}!elektra\+Notification\+Register\+Kdb\+Short@{elektra\+Notification\+Register\+Kdb\+Short}}
\index{elektra\+Notification\+Register\+Kdb\+Short@{elektra\+Notification\+Register\+Kdb\+Short}!Notification@{Notification}}
\subsubsection{\texorpdfstring{elektra\+Notification\+Register\+Kdb\+Short()}{elektraNotificationRegisterKdbShort()}}
{\footnotesize\ttfamily int elektra\+Notification\+Register\+Kdb\+Short (\begin{DoxyParamCaption}\item[{K\+DB $\ast$}]{kdb,  }\item[{Key $\ast$}]{key,  }\item[{kdb\+\_\+short\+\_\+t $\ast$}]{variable }\end{DoxyParamCaption})}



Subscribe for automatic updates to a given variable when the given key value is changed. 

On kdb\+Get iff the key is present and its content is valid, the registered variable is updated.


\begin{DoxyParams}{Parameters}
{\em handle} & plugin handle \\
\hline
{\em key} & key to watch for changes \\
\hline
{\em variable} & variable\\
\hline
\end{DoxyParams}

\begin{DoxyRetVals}{Return values}
{\em 1} & on success \\
\hline
{\em 0} & on failure\\
\hline
\end{DoxyRetVals}
\mbox{\Hypertarget{group__kdbnotification_ga450849bc96f30c5ececac2d0dda51b4e}\label{group__kdbnotification_ga450849bc96f30c5ececac2d0dda51b4e}} 
\index{Notification@{Notification}!elektra\+Notification\+Register\+Kdb\+Unsigned\+Long@{elektra\+Notification\+Register\+Kdb\+Unsigned\+Long}}
\index{elektra\+Notification\+Register\+Kdb\+Unsigned\+Long@{elektra\+Notification\+Register\+Kdb\+Unsigned\+Long}!Notification@{Notification}}
\subsubsection{\texorpdfstring{elektra\+Notification\+Register\+Kdb\+Unsigned\+Long()}{elektraNotificationRegisterKdbUnsignedLong()}}
{\footnotesize\ttfamily int elektra\+Notification\+Register\+Kdb\+Unsigned\+Long (\begin{DoxyParamCaption}\item[{K\+DB $\ast$}]{kdb,  }\item[{Key $\ast$}]{key,  }\item[{kdb\+\_\+unsigned\+\_\+long\+\_\+t $\ast$}]{variable }\end{DoxyParamCaption})}



Subscribe for automatic updates to a given variable when the given key value is changed. 

On kdb\+Get iff the key is present and its content is valid, the registered variable is updated.


\begin{DoxyParams}{Parameters}
{\em handle} & plugin handle \\
\hline
{\em key} & key to watch for changes \\
\hline
{\em variable} & variable\\
\hline
\end{DoxyParams}

\begin{DoxyRetVals}{Return values}
{\em 1} & on success \\
\hline
{\em 0} & on failure\\
\hline
\end{DoxyRetVals}
\mbox{\Hypertarget{group__kdbnotification_gad375d4f6b35be2034bb3fa86ca5d8b49}\label{group__kdbnotification_gad375d4f6b35be2034bb3fa86ca5d8b49}} 
\index{Notification@{Notification}!elektra\+Notification\+Register\+Kdb\+Unsigned\+Long\+Long@{elektra\+Notification\+Register\+Kdb\+Unsigned\+Long\+Long}}
\index{elektra\+Notification\+Register\+Kdb\+Unsigned\+Long\+Long@{elektra\+Notification\+Register\+Kdb\+Unsigned\+Long\+Long}!Notification@{Notification}}
\subsubsection{\texorpdfstring{elektra\+Notification\+Register\+Kdb\+Unsigned\+Long\+Long()}{elektraNotificationRegisterKdbUnsignedLongLong()}}
{\footnotesize\ttfamily int elektra\+Notification\+Register\+Kdb\+Unsigned\+Long\+Long (\begin{DoxyParamCaption}\item[{K\+DB $\ast$}]{kdb,  }\item[{Key $\ast$}]{key,  }\item[{kdb\+\_\+unsigned\+\_\+long\+\_\+long\+\_\+t $\ast$}]{variable }\end{DoxyParamCaption})}



Subscribe for automatic updates to a given variable when the given key value is changed. 

On kdb\+Get iff the key is present and its content is valid, the registered variable is updated.


\begin{DoxyParams}{Parameters}
{\em handle} & plugin handle \\
\hline
{\em key} & key to watch for changes \\
\hline
{\em variable} & variable\\
\hline
\end{DoxyParams}

\begin{DoxyRetVals}{Return values}
{\em 1} & on success \\
\hline
{\em 0} & on failure\\
\hline
\end{DoxyRetVals}
\mbox{\Hypertarget{group__kdbnotification_ga94b47b5810894136bbdd73279ad45490}\label{group__kdbnotification_ga94b47b5810894136bbdd73279ad45490}} 
\index{Notification@{Notification}!elektra\+Notification\+Register\+Kdb\+Unsigned\+Short@{elektra\+Notification\+Register\+Kdb\+Unsigned\+Short}}
\index{elektra\+Notification\+Register\+Kdb\+Unsigned\+Short@{elektra\+Notification\+Register\+Kdb\+Unsigned\+Short}!Notification@{Notification}}
\subsubsection{\texorpdfstring{elektra\+Notification\+Register\+Kdb\+Unsigned\+Short()}{elektraNotificationRegisterKdbUnsignedShort()}}
{\footnotesize\ttfamily int elektra\+Notification\+Register\+Kdb\+Unsigned\+Short (\begin{DoxyParamCaption}\item[{K\+DB $\ast$}]{kdb,  }\item[{Key $\ast$}]{key,  }\item[{kdb\+\_\+unsigned\+\_\+short\+\_\+t $\ast$}]{variable }\end{DoxyParamCaption})}



Subscribe for automatic updates to a given variable when the given key value is changed. 

On kdb\+Get iff the key is present and its content is valid, the registered variable is updated.


\begin{DoxyParams}{Parameters}
{\em handle} & plugin handle \\
\hline
{\em key} & key to watch for changes \\
\hline
{\em variable} & variable\\
\hline
\end{DoxyParams}

\begin{DoxyRetVals}{Return values}
{\em 1} & on success \\
\hline
{\em 0} & on failure\\
\hline
\end{DoxyRetVals}
\mbox{\Hypertarget{group__kdbnotification_ga1130c58dc89f5838ca1c7d625e04bc92}\label{group__kdbnotification_ga1130c58dc89f5838ca1c7d625e04bc92}} 
\index{Notification@{Notification}!elektra\+Notification\+Register\+Long@{elektra\+Notification\+Register\+Long}}
\index{elektra\+Notification\+Register\+Long@{elektra\+Notification\+Register\+Long}!Notification@{Notification}}
\subsubsection{\texorpdfstring{elektra\+Notification\+Register\+Long()}{elektraNotificationRegisterLong()}}
{\footnotesize\ttfamily int elektra\+Notification\+Register\+Long (\begin{DoxyParamCaption}\item[{K\+DB $\ast$}]{kdb,  }\item[{Key $\ast$}]{key,  }\item[{long $\ast$}]{variable }\end{DoxyParamCaption})}



Subscribe for automatic updates to a given variable when the given key value is changed. 

On kdb\+Get iff the key is present and its content is valid, the registered variable is updated.


\begin{DoxyParams}{Parameters}
{\em handle} & plugin handle \\
\hline
{\em key} & key to watch for changes \\
\hline
{\em variable} & variable\\
\hline
\end{DoxyParams}

\begin{DoxyRetVals}{Return values}
{\em 1} & on success \\
\hline
{\em 0} & on failure\\
\hline
\end{DoxyRetVals}
\mbox{\Hypertarget{group__kdbnotification_ga59593e7b3b2b5e32ec0d5cf611e3704c}\label{group__kdbnotification_ga59593e7b3b2b5e32ec0d5cf611e3704c}} 
\index{Notification@{Notification}!elektra\+Notification\+Register\+Long\+Long@{elektra\+Notification\+Register\+Long\+Long}}
\index{elektra\+Notification\+Register\+Long\+Long@{elektra\+Notification\+Register\+Long\+Long}!Notification@{Notification}}
\subsubsection{\texorpdfstring{elektra\+Notification\+Register\+Long\+Long()}{elektraNotificationRegisterLongLong()}}
{\footnotesize\ttfamily int elektra\+Notification\+Register\+Long\+Long (\begin{DoxyParamCaption}\item[{K\+DB $\ast$}]{kdb,  }\item[{Key $\ast$}]{key,  }\item[{long long $\ast$}]{variable }\end{DoxyParamCaption})}



Subscribe for automatic updates to a given variable when the given key value is changed. 

On kdb\+Get iff the key is present and its content is valid, the registered variable is updated.


\begin{DoxyParams}{Parameters}
{\em handle} & plugin handle \\
\hline
{\em key} & key to watch for changes \\
\hline
{\em variable} & variable\\
\hline
\end{DoxyParams}

\begin{DoxyRetVals}{Return values}
{\em 1} & on success \\
\hline
{\em 0} & on failure\\
\hline
\end{DoxyRetVals}
\mbox{\Hypertarget{group__kdbnotification_ga940c1014f72e01b4145c418e87efa492}\label{group__kdbnotification_ga940c1014f72e01b4145c418e87efa492}} 
\index{Notification@{Notification}!elektra\+Notification\+Register\+Unsigned\+Int@{elektra\+Notification\+Register\+Unsigned\+Int}}
\index{elektra\+Notification\+Register\+Unsigned\+Int@{elektra\+Notification\+Register\+Unsigned\+Int}!Notification@{Notification}}
\subsubsection{\texorpdfstring{elektra\+Notification\+Register\+Unsigned\+Int()}{elektraNotificationRegisterUnsignedInt()}}
{\footnotesize\ttfamily int elektra\+Notification\+Register\+Unsigned\+Int (\begin{DoxyParamCaption}\item[{K\+DB $\ast$}]{kdb,  }\item[{Key $\ast$}]{key,  }\item[{unsigned int $\ast$}]{variable }\end{DoxyParamCaption})}



Subscribe for automatic updates to a given variable when the given key value is changed. 

On kdb\+Get iff the key is present and its content is valid, the registered variable is updated.


\begin{DoxyParams}{Parameters}
{\em handle} & plugin handle \\
\hline
{\em key} & key to watch for changes \\
\hline
{\em variable} & variable\\
\hline
\end{DoxyParams}

\begin{DoxyRetVals}{Return values}
{\em 1} & on success \\
\hline
{\em 0} & on failure\\
\hline
\end{DoxyRetVals}
\mbox{\Hypertarget{group__kdbnotification_ga8ba57c05dcd561b266f3a32aa687d4ea}\label{group__kdbnotification_ga8ba57c05dcd561b266f3a32aa687d4ea}} 
\index{Notification@{Notification}!elektra\+Notification\+Register\+Unsigned\+Long@{elektra\+Notification\+Register\+Unsigned\+Long}}
\index{elektra\+Notification\+Register\+Unsigned\+Long@{elektra\+Notification\+Register\+Unsigned\+Long}!Notification@{Notification}}
\subsubsection{\texorpdfstring{elektra\+Notification\+Register\+Unsigned\+Long()}{elektraNotificationRegisterUnsignedLong()}}
{\footnotesize\ttfamily int elektra\+Notification\+Register\+Unsigned\+Long (\begin{DoxyParamCaption}\item[{K\+DB $\ast$}]{kdb,  }\item[{Key $\ast$}]{key,  }\item[{unsigned long $\ast$}]{variable }\end{DoxyParamCaption})}



Subscribe for automatic updates to a given variable when the given key value is changed. 

On kdb\+Get iff the key is present and its content is valid, the registered variable is updated.


\begin{DoxyParams}{Parameters}
{\em handle} & plugin handle \\
\hline
{\em key} & key to watch for changes \\
\hline
{\em variable} & variable\\
\hline
\end{DoxyParams}

\begin{DoxyRetVals}{Return values}
{\em 1} & on success \\
\hline
{\em 0} & on failure\\
\hline
\end{DoxyRetVals}
\mbox{\Hypertarget{group__kdbnotification_ga69673c57ef694bb6d5d383eaf89750dd}\label{group__kdbnotification_ga69673c57ef694bb6d5d383eaf89750dd}} 
\index{Notification@{Notification}!elektra\+Notification\+Register\+Unsigned\+Long\+Long@{elektra\+Notification\+Register\+Unsigned\+Long\+Long}}
\index{elektra\+Notification\+Register\+Unsigned\+Long\+Long@{elektra\+Notification\+Register\+Unsigned\+Long\+Long}!Notification@{Notification}}
\subsubsection{\texorpdfstring{elektra\+Notification\+Register\+Unsigned\+Long\+Long()}{elektraNotificationRegisterUnsignedLongLong()}}
{\footnotesize\ttfamily int elektra\+Notification\+Register\+Unsigned\+Long\+Long (\begin{DoxyParamCaption}\item[{K\+DB $\ast$}]{kdb,  }\item[{Key $\ast$}]{key,  }\item[{unsigned long long $\ast$}]{variable }\end{DoxyParamCaption})}



Subscribe for automatic updates to a given variable when the given key value is changed. 

On kdb\+Get iff the key is present and its content is valid, the registered variable is updated.


\begin{DoxyParams}{Parameters}
{\em handle} & plugin handle \\
\hline
{\em key} & key to watch for changes \\
\hline
{\em variable} & variable\\
\hline
\end{DoxyParams}

\begin{DoxyRetVals}{Return values}
{\em 1} & on success \\
\hline
{\em 0} & on failure\\
\hline
\end{DoxyRetVals}
