\hypertarget{group__Eldbus__Signal__Handler}{}\section{Signal Handler}
\label{group__Eldbus__Signal__Handler}\index{Signal Handler@{Signal Handler}}
\subsection*{Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{group__Eldbus__Core_ga0f4385f3952b6ad56f1966a3ed1b744c}{Eldbus\+\_\+\+Signal\+\_\+\+Handler} $\ast$ \hyperlink{group__Eldbus__Signal__Handler_ga6613bf801b1bbc92708bedc57e64014c}{eldbus\+\_\+signal\+\_\+handler\+\_\+add} (\hyperlink{group__Eldbus__Core_ga5f0557a7e65ed263fcc1678874b8f7e7}{Eldbus\+\_\+\+Connection} $\ast$conn, const char $\ast$sender, const char $\ast$path, const char $\ast$interface, const char $\ast$member, \hyperlink{group__Eldbus__Core_ga0189553a29c9be6b84cf6d8588d884e3}{Eldbus\+\_\+\+Signal\+\_\+\+Cb} cb, const void $\ast$cb\+\_\+data)
\begin{DoxyCompactList}\small\item\em Add a signal handler. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{group__Eldbus__Signal__Handler_ga163e96578c1b8cce70b7c588384ccc14}\label{group__Eldbus__Signal__Handler_ga163e96578c1b8cce70b7c588384ccc14}} 
\hyperlink{group__Eldbus__Core_ga0f4385f3952b6ad56f1966a3ed1b744c}{Eldbus\+\_\+\+Signal\+\_\+\+Handler} $\ast$ \hyperlink{group__Eldbus__Signal__Handler_ga163e96578c1b8cce70b7c588384ccc14}{eldbus\+\_\+signal\+\_\+handler\+\_\+ref} (\hyperlink{group__Eldbus__Core_ga0f4385f3952b6ad56f1966a3ed1b744c}{Eldbus\+\_\+\+Signal\+\_\+\+Handler} $\ast$handler)
\begin{DoxyCompactList}\small\item\em Increase signal handler reference. \end{DoxyCompactList}\item 
void \hyperlink{group__Eldbus__Signal__Handler_ga1b39e54fb712220f3e699d1ca9c6c919}{eldbus\+\_\+signal\+\_\+handler\+\_\+unref} (\hyperlink{group__Eldbus__Core_ga0f4385f3952b6ad56f1966a3ed1b744c}{Eldbus\+\_\+\+Signal\+\_\+\+Handler} $\ast$handler)
\begin{DoxyCompactList}\small\item\em Decrease signal handler reference. \end{DoxyCompactList}\item 
void \hyperlink{group__Eldbus__Signal__Handler_gadd88fb9662d31a3bb1640dbf454544e9}{eldbus\+\_\+signal\+\_\+handler\+\_\+del} (\hyperlink{group__Eldbus__Core_ga0f4385f3952b6ad56f1966a3ed1b744c}{Eldbus\+\_\+\+Signal\+\_\+\+Handler} $\ast$handler)
\begin{DoxyCompactList}\small\item\em Decrease signal handler reference like \hyperlink{group__Eldbus__Signal__Handler_ga1b39e54fb712220f3e699d1ca9c6c919}{eldbus\+\_\+signal\+\_\+handler\+\_\+unref()} but if reference $>$ 0 this signal handler will stop listening to signals. \end{DoxyCompactList}\item 
\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} \hyperlink{group__Eldbus__Signal__Handler_ga04f654be8ad8bd3e94cd3f725f2e04a0}{eldbus\+\_\+signal\+\_\+handler\+\_\+match\+\_\+extra\+\_\+set} (\hyperlink{group__Eldbus__Core_ga0f4385f3952b6ad56f1966a3ed1b744c}{Eldbus\+\_\+\+Signal\+\_\+\+Handler} $\ast$sh,...) \hyperlink{group__Eina__Types__Group_gab767b5b607b3805cb088cd4ba93e3c3b}{E\+I\+N\+A\+\_\+\+S\+E\+N\+T\+I\+N\+EL}
\begin{DoxyCompactList}\small\item\em Add extra argument in match of signal handler to obtain specifics signals. \end{DoxyCompactList}\item 
\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} \hyperlink{group__Eldbus__Signal__Handler_gaa2c32c046b21c5474a2f9eccf5bb8dc2}{eldbus\+\_\+signal\+\_\+handler\+\_\+match\+\_\+extra\+\_\+vset} (\hyperlink{group__Eldbus__Core_ga0f4385f3952b6ad56f1966a3ed1b744c}{Eldbus\+\_\+\+Signal\+\_\+\+Handler} $\ast$sh, va\+\_\+list ap)
\begin{DoxyCompactList}\small\item\em Add extra argument in match of signal handler to obtain specifics signals. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{group__Eldbus__Signal__Handler_ga5ae76aa29a76889636bec918245232b5}\label{group__Eldbus__Signal__Handler_ga5ae76aa29a76889636bec918245232b5}} 
void \hyperlink{group__Eldbus__Signal__Handler_ga5ae76aa29a76889636bec918245232b5}{eldbus\+\_\+signal\+\_\+handler\+\_\+free\+\_\+cb\+\_\+add} (\hyperlink{group__Eldbus__Core_ga0f4385f3952b6ad56f1966a3ed1b744c}{Eldbus\+\_\+\+Signal\+\_\+\+Handler} $\ast$handler, \hyperlink{group__Eldbus__Core_ga5877d06a497dd7ba16c343c0beff2629}{Eldbus\+\_\+\+Free\+\_\+\+Cb} cb, const void $\ast$data)
\begin{DoxyCompactList}\small\item\em Add a callback function to be called when signal handler will be freed. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{group__Eldbus__Signal__Handler_gaa93015868f155013c5a740a82c79989d}\label{group__Eldbus__Signal__Handler_gaa93015868f155013c5a740a82c79989d}} 
void \hyperlink{group__Eldbus__Signal__Handler_gaa93015868f155013c5a740a82c79989d}{eldbus\+\_\+signal\+\_\+handler\+\_\+free\+\_\+cb\+\_\+del} (\hyperlink{group__Eldbus__Core_ga0f4385f3952b6ad56f1966a3ed1b744c}{Eldbus\+\_\+\+Signal\+\_\+\+Handler} $\ast$handler, \hyperlink{group__Eldbus__Core_ga5877d06a497dd7ba16c343c0beff2629}{Eldbus\+\_\+\+Free\+\_\+\+Cb} cb, const void $\ast$data)
\begin{DoxyCompactList}\small\item\em Remove callback registered in \hyperlink{group__Eldbus__Signal__Handler_ga5ae76aa29a76889636bec918245232b5}{eldbus\+\_\+signal\+\_\+handler\+\_\+free\+\_\+cb\+\_\+add()}. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{group__Eldbus__Signal__Handler_ga7d7e397a771cad1b3b499d0788fa4ccd}\label{group__Eldbus__Signal__Handler_ga7d7e397a771cad1b3b499d0788fa4ccd}} 
const char $\ast$ {\bfseries eldbus\+\_\+signal\+\_\+handler\+\_\+sender\+\_\+get} (const \hyperlink{group__Eldbus__Core_ga0f4385f3952b6ad56f1966a3ed1b744c}{Eldbus\+\_\+\+Signal\+\_\+\+Handler} $\ast$handler)
\item 
\mbox{\Hypertarget{group__Eldbus__Signal__Handler_gaa65902f8ab4f2a868cb947f333c80cb3}\label{group__Eldbus__Signal__Handler_gaa65902f8ab4f2a868cb947f333c80cb3}} 
const char $\ast$ {\bfseries eldbus\+\_\+signal\+\_\+handler\+\_\+path\+\_\+get} (const \hyperlink{group__Eldbus__Core_ga0f4385f3952b6ad56f1966a3ed1b744c}{Eldbus\+\_\+\+Signal\+\_\+\+Handler} $\ast$handler)
\item 
\mbox{\Hypertarget{group__Eldbus__Signal__Handler_gaa2447cfb1c1294c3b6d4d08edd19a8db}\label{group__Eldbus__Signal__Handler_gaa2447cfb1c1294c3b6d4d08edd19a8db}} 
const char $\ast$ {\bfseries eldbus\+\_\+signal\+\_\+handler\+\_\+interface\+\_\+get} (const \hyperlink{group__Eldbus__Core_ga0f4385f3952b6ad56f1966a3ed1b744c}{Eldbus\+\_\+\+Signal\+\_\+\+Handler} $\ast$handler)
\item 
\mbox{\Hypertarget{group__Eldbus__Signal__Handler_ga238a511139f4ca64547284657048f808}\label{group__Eldbus__Signal__Handler_ga238a511139f4ca64547284657048f808}} 
const char $\ast$ {\bfseries eldbus\+\_\+signal\+\_\+handler\+\_\+member\+\_\+get} (const \hyperlink{group__Eldbus__Core_ga0f4385f3952b6ad56f1966a3ed1b744c}{Eldbus\+\_\+\+Signal\+\_\+\+Handler} $\ast$handler)
\item 
\mbox{\Hypertarget{group__Eldbus__Signal__Handler_ga7c415992e7a90b5c7ee452c21fb2420f}\label{group__Eldbus__Signal__Handler_ga7c415992e7a90b5c7ee452c21fb2420f}} 
const char $\ast$ {\bfseries eldbus\+\_\+signal\+\_\+handler\+\_\+match\+\_\+get} (const \hyperlink{group__Eldbus__Core_ga0f4385f3952b6ad56f1966a3ed1b744c}{Eldbus\+\_\+\+Signal\+\_\+\+Handler} $\ast$handler)
\item 
\mbox{\Hypertarget{group__Eldbus__Signal__Handler_ga34ce52332ea61025e2c290b2541df4e2}\label{group__Eldbus__Signal__Handler_ga34ce52332ea61025e2c290b2541df4e2}} 
\hyperlink{group__Eldbus__Core_ga5f0557a7e65ed263fcc1678874b8f7e7}{Eldbus\+\_\+\+Connection} $\ast$ {\bfseries eldbus\+\_\+signal\+\_\+handler\+\_\+connection\+\_\+get} (const \hyperlink{group__Eldbus__Core_ga0f4385f3952b6ad56f1966a3ed1b744c}{Eldbus\+\_\+\+Signal\+\_\+\+Handler} $\ast$handler)
\end{DoxyCompactItemize}


\subsection{Detailed Description}


\subsection{Function Documentation}
\mbox{\Hypertarget{group__Eldbus__Signal__Handler_ga6613bf801b1bbc92708bedc57e64014c}\label{group__Eldbus__Signal__Handler_ga6613bf801b1bbc92708bedc57e64014c}} 
\index{Signal Handler@{Signal Handler}!eldbus\+\_\+signal\+\_\+handler\+\_\+add@{eldbus\+\_\+signal\+\_\+handler\+\_\+add}}
\index{eldbus\+\_\+signal\+\_\+handler\+\_\+add@{eldbus\+\_\+signal\+\_\+handler\+\_\+add}!Signal Handler@{Signal Handler}}
\subsubsection{\texorpdfstring{eldbus\+\_\+signal\+\_\+handler\+\_\+add()}{eldbus\_signal\_handler\_add()}}
{\footnotesize\ttfamily \hyperlink{group__Eldbus__Core_ga0f4385f3952b6ad56f1966a3ed1b744c}{Eldbus\+\_\+\+Signal\+\_\+\+Handler}$\ast$ eldbus\+\_\+signal\+\_\+handler\+\_\+add (\begin{DoxyParamCaption}\item[{\hyperlink{group__Eldbus__Core_ga5f0557a7e65ed263fcc1678874b8f7e7}{Eldbus\+\_\+\+Connection} $\ast$}]{conn,  }\item[{const char $\ast$}]{sender,  }\item[{const char $\ast$}]{path,  }\item[{const char $\ast$}]{interface,  }\item[{const char $\ast$}]{member,  }\item[{\hyperlink{group__Eldbus__Core_ga0189553a29c9be6b84cf6d8588d884e3}{Eldbus\+\_\+\+Signal\+\_\+\+Cb}}]{cb,  }\item[{const void $\ast$}]{cb\+\_\+data }\end{DoxyParamCaption})}



Add a signal handler. 


\begin{DoxyParams}{Parameters}
{\em conn} & connection where the signal is emitted \\
\hline
{\em sender} & bus name or unique id of where the signal is emitted \\
\hline
{\em path} & path of remote object \\
\hline
{\em interface} & that signal belongs \\
\hline
{\em member} & name of the signal \\
\hline
{\em cb} & callback that will be called when this signal is received \\
\hline
{\em cb\+\_\+data} & data that will be passed to callback \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{group__Eldbus__Signal__Handler_ga1b39e54fb712220f3e699d1ca9c6c919}\label{group__Eldbus__Signal__Handler_ga1b39e54fb712220f3e699d1ca9c6c919}} 
\index{Signal Handler@{Signal Handler}!eldbus\+\_\+signal\+\_\+handler\+\_\+unref@{eldbus\+\_\+signal\+\_\+handler\+\_\+unref}}
\index{eldbus\+\_\+signal\+\_\+handler\+\_\+unref@{eldbus\+\_\+signal\+\_\+handler\+\_\+unref}!Signal Handler@{Signal Handler}}
\subsubsection{\texorpdfstring{eldbus\+\_\+signal\+\_\+handler\+\_\+unref()}{eldbus\_signal\_handler\_unref()}}
{\footnotesize\ttfamily void eldbus\+\_\+signal\+\_\+handler\+\_\+unref (\begin{DoxyParamCaption}\item[{\hyperlink{group__Eldbus__Core_ga0f4385f3952b6ad56f1966a3ed1b744c}{Eldbus\+\_\+\+Signal\+\_\+\+Handler} $\ast$}]{handler }\end{DoxyParamCaption})}



Decrease signal handler reference. 

If reference == 0 signal handler will be freed. 

References D\+BG, and eina\+\_\+strbuf\+\_\+string\+\_\+get().



Referenced by eldbus\+\_\+signal\+\_\+handler\+\_\+del().

\mbox{\Hypertarget{group__Eldbus__Signal__Handler_gadd88fb9662d31a3bb1640dbf454544e9}\label{group__Eldbus__Signal__Handler_gadd88fb9662d31a3bb1640dbf454544e9}} 
\index{Signal Handler@{Signal Handler}!eldbus\+\_\+signal\+\_\+handler\+\_\+del@{eldbus\+\_\+signal\+\_\+handler\+\_\+del}}
\index{eldbus\+\_\+signal\+\_\+handler\+\_\+del@{eldbus\+\_\+signal\+\_\+handler\+\_\+del}!Signal Handler@{Signal Handler}}
\subsubsection{\texorpdfstring{eldbus\+\_\+signal\+\_\+handler\+\_\+del()}{eldbus\_signal\_handler\_del()}}
{\footnotesize\ttfamily void eldbus\+\_\+signal\+\_\+handler\+\_\+del (\begin{DoxyParamCaption}\item[{\hyperlink{group__Eldbus__Core_ga0f4385f3952b6ad56f1966a3ed1b744c}{Eldbus\+\_\+\+Signal\+\_\+\+Handler} $\ast$}]{handler }\end{DoxyParamCaption})}



Decrease signal handler reference like \hyperlink{group__Eldbus__Signal__Handler_ga1b39e54fb712220f3e699d1ca9c6c919}{eldbus\+\_\+signal\+\_\+handler\+\_\+unref()} but if reference $>$ 0 this signal handler will stop listening to signals. 

In other words it will be canceled but memory will not be freed. 

References eldbus\+\_\+signal\+\_\+handler\+\_\+unref().



Referenced by eldbus\+\_\+signal\+\_\+handler\+\_\+match\+\_\+extra\+\_\+set().

\mbox{\Hypertarget{group__Eldbus__Signal__Handler_ga04f654be8ad8bd3e94cd3f725f2e04a0}\label{group__Eldbus__Signal__Handler_ga04f654be8ad8bd3e94cd3f725f2e04a0}} 
\index{Signal Handler@{Signal Handler}!eldbus\+\_\+signal\+\_\+handler\+\_\+match\+\_\+extra\+\_\+set@{eldbus\+\_\+signal\+\_\+handler\+\_\+match\+\_\+extra\+\_\+set}}
\index{eldbus\+\_\+signal\+\_\+handler\+\_\+match\+\_\+extra\+\_\+set@{eldbus\+\_\+signal\+\_\+handler\+\_\+match\+\_\+extra\+\_\+set}!Signal Handler@{Signal Handler}}
\subsubsection{\texorpdfstring{eldbus\+\_\+signal\+\_\+handler\+\_\+match\+\_\+extra\+\_\+set()}{eldbus\_signal\_handler\_match\_extra\_set()}}
{\footnotesize\ttfamily \hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} eldbus\+\_\+signal\+\_\+handler\+\_\+match\+\_\+extra\+\_\+set (\begin{DoxyParamCaption}\item[{\hyperlink{group__Eldbus__Core_ga0f4385f3952b6ad56f1966a3ed1b744c}{Eldbus\+\_\+\+Signal\+\_\+\+Handler} $\ast$}]{sh,  }\item[{}]{... }\end{DoxyParamCaption})}



Add extra argument in match of signal handler to obtain specifics signals. 

Example\+: eldbus\+\_\+signal\+\_\+handler\+\_\+match\+\_\+extra\+\_\+set(sh, \char`\"{}arg0\char`\"{}, \char`\"{}org.\+bansheeproject.\+Banshee\char`\"{}, \char`\"{}arg1\char`\"{}, \char`\"{}\char`\"{}, N\+U\+LL); With this extra arguments this signal handler callback only will be called when Banshee is started.

\begin{DoxyNote}{Note}
For now only argX is supported.
\end{DoxyNote}

\begin{DoxyParams}{Parameters}
{\em sh} & signal handler \\
\hline
{\em ...} & variadic of key and value and must be ended with a N\+U\+LL\\
\hline
\end{DoxyParams}
\begin{DoxyNote}{Note}
For more information\+: \href{http://dbus.freedesktop.org/doc/dbus-specification.html#message-bus-routing-match-rules}{\tt http\+://dbus.\+freedesktop.\+org/doc/dbus-\/specification.\+html\#message-\/bus-\/routing-\/match-\/rules} 
\end{DoxyNote}


References E\+I\+N\+A\+\_\+\+U\+N\+U\+S\+ED, eldbus\+\_\+connection\+\_\+free\+\_\+cb\+\_\+del(), eldbus\+\_\+signal\+\_\+handler\+\_\+del(), eldbus\+\_\+signal\+\_\+handler\+\_\+free\+\_\+cb\+\_\+del(), and eldbus\+\_\+signal\+\_\+handler\+\_\+match\+\_\+extra\+\_\+vset().

\mbox{\Hypertarget{group__Eldbus__Signal__Handler_gaa2c32c046b21c5474a2f9eccf5bb8dc2}\label{group__Eldbus__Signal__Handler_gaa2c32c046b21c5474a2f9eccf5bb8dc2}} 
\index{Signal Handler@{Signal Handler}!eldbus\+\_\+signal\+\_\+handler\+\_\+match\+\_\+extra\+\_\+vset@{eldbus\+\_\+signal\+\_\+handler\+\_\+match\+\_\+extra\+\_\+vset}}
\index{eldbus\+\_\+signal\+\_\+handler\+\_\+match\+\_\+extra\+\_\+vset@{eldbus\+\_\+signal\+\_\+handler\+\_\+match\+\_\+extra\+\_\+vset}!Signal Handler@{Signal Handler}}
\subsubsection{\texorpdfstring{eldbus\+\_\+signal\+\_\+handler\+\_\+match\+\_\+extra\+\_\+vset()}{eldbus\_signal\_handler\_match\_extra\_vset()}}
{\footnotesize\ttfamily \hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} eldbus\+\_\+signal\+\_\+handler\+\_\+match\+\_\+extra\+\_\+vset (\begin{DoxyParamCaption}\item[{\hyperlink{group__Eldbus__Core_ga0f4385f3952b6ad56f1966a3ed1b744c}{Eldbus\+\_\+\+Signal\+\_\+\+Handler} $\ast$}]{sh,  }\item[{va\+\_\+list}]{ap }\end{DoxyParamCaption})}



Add extra argument in match of signal handler to obtain specifics signals. 

Example\+: eldbus\+\_\+signal\+\_\+handler\+\_\+match\+\_\+extra\+\_\+set(sh, \char`\"{}arg0\char`\"{}, \char`\"{}org.\+bansheeproject.\+Banshee\char`\"{}, \char`\"{}arg1\char`\"{}, \char`\"{}\char`\"{}, N\+U\+LL); With this extra arguments this signal handler callback only will be called when Banshee is started.

\begin{DoxyNote}{Note}
For now is only supported argX.
\end{DoxyNote}

\begin{DoxyParams}{Parameters}
{\em sh} & signal handler \\
\hline
{\em ap} & va\+\_\+list with the keys and values, must be ended with a N\+U\+LL\\
\hline
\end{DoxyParams}
\begin{DoxyNote}{Note}
To information\+: \href{http://dbus.freedesktop.org/doc/dbus-specification.html#message-bus-routing-match-rules}{\tt http\+://dbus.\+freedesktop.\+org/doc/dbus-\/specification.\+html\#message-\/bus-\/routing-\/match-\/rules} 
\end{DoxyNote}


References E\+I\+N\+A\+\_\+\+F\+A\+L\+SE, and eina\+\_\+strbuf\+\_\+string\+\_\+get().



Referenced by eldbus\+\_\+signal\+\_\+handler\+\_\+match\+\_\+extra\+\_\+set().

