\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 
\hypertarget{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)}\label{group__Eldbus__Signal__Handler_ga163e96578c1b8cce70b7c588384ccc14}

\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\+E\+L}
\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 
\hypertarget{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)}\label{group__Eldbus__Signal__Handler_ga5ae76aa29a76889636bec918245232b5}

\begin{DoxyCompactList}\small\item\em Add a callback function to be called when signal handler will be freed. \end{DoxyCompactList}\item 
\hypertarget{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)}\label{group__Eldbus__Signal__Handler_gaa93015868f155013c5a740a82c79989d}

\begin{DoxyCompactList}\small\item\em Remove callback registered in \hyperlink{group__Eldbus__Signal__Handler_ga5ae76aa29a76889636bec918245232b5}{eldbus\+\_\+signal\+\_\+handler\+\_\+free\+\_\+cb\+\_\+add()}. \end{DoxyCompactList}\item 
\hypertarget{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)}\label{group__Eldbus__Signal__Handler_ga7d7e397a771cad1b3b499d0788fa4ccd}

\item 
\hypertarget{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)}\label{group__Eldbus__Signal__Handler_gaa65902f8ab4f2a868cb947f333c80cb3}

\item 
\hypertarget{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)}\label{group__Eldbus__Signal__Handler_gaa2447cfb1c1294c3b6d4d08edd19a8db}

\item 
\hypertarget{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)}\label{group__Eldbus__Signal__Handler_ga238a511139f4ca64547284657048f808}

\item 
\hypertarget{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)}\label{group__Eldbus__Signal__Handler_ga7c415992e7a90b5c7ee452c21fb2420f}

\item 
\hypertarget{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)}\label{group__Eldbus__Signal__Handler_ga34ce52332ea61025e2c290b2541df4e2}

\end{DoxyCompactItemize}


\subsection{Detailed Description}


\subsection{Function Documentation}
\hypertarget{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[{eldbus\+\_\+signal\+\_\+handler\+\_\+add}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Eldbus\+\_\+\+Signal\+\_\+\+Handler}$\ast$ eldbus\+\_\+signal\+\_\+handler\+\_\+add (
\begin{DoxyParamCaption}
\item[{{\bf 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[{{\bf Eldbus\+\_\+\+Signal\+\_\+\+Cb}}]{cb, }
\item[{const void $\ast$}]{cb\+\_\+data}
\end{DoxyParamCaption}
)}}\label{group__Eldbus__Signal__Handler_ga6613bf801b1bbc92708bedc57e64014c}


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}


References eldbus\+\_\+connection\+\_\+free\+\_\+cb\+\_\+add(), and eldbus\+\_\+signal\+\_\+handler\+\_\+free\+\_\+cb\+\_\+add().

\hypertarget{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[{eldbus\+\_\+signal\+\_\+handler\+\_\+unref}]{\setlength{\rightskip}{0pt plus 5cm}void eldbus\+\_\+signal\+\_\+handler\+\_\+unref (
\begin{DoxyParamCaption}
\item[{{\bf Eldbus\+\_\+\+Signal\+\_\+\+Handler} $\ast$}]{handler}
\end{DoxyParamCaption}
)}}\label{group__Eldbus__Signal__Handler_ga1b39e54fb712220f3e699d1ca9c6c919}


Decrease signal handler reference. 

If reference == 0 signal handler will be freed. 

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



Referenced by eldbus\+\_\+proxy\+\_\+event\+\_\+callback\+\_\+del(), eldbus\+\_\+proxy\+\_\+properties\+\_\+monitor(), and eldbus\+\_\+signal\+\_\+handler\+\_\+del().

\hypertarget{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[{eldbus\+\_\+signal\+\_\+handler\+\_\+del}]{\setlength{\rightskip}{0pt plus 5cm}void eldbus\+\_\+signal\+\_\+handler\+\_\+del (
\begin{DoxyParamCaption}
\item[{{\bf Eldbus\+\_\+\+Signal\+\_\+\+Handler} $\ast$}]{handler}
\end{DoxyParamCaption}
)}}\label{group__Eldbus__Signal__Handler_gadd88fb9662d31a3bb1640dbf454544e9}


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\+\_\+object\+\_\+event\+\_\+callback\+\_\+del().

\hypertarget{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[{eldbus\+\_\+signal\+\_\+handler\+\_\+match\+\_\+extra\+\_\+set}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Eina\+\_\+\+Bool} eldbus\+\_\+signal\+\_\+handler\+\_\+match\+\_\+extra\+\_\+set (
\begin{DoxyParamCaption}
\item[{{\bf Eldbus\+\_\+\+Signal\+\_\+\+Handler} $\ast$}]{sh, }
\item[{}]{...}
\end{DoxyParamCaption}
)}}\label{group__Eldbus__Signal__Handler_ga04f654be8ad8bd3e94cd3f725f2e04a0}


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\+L\+L); With this extra arguments this signal handler callback only will be called when Banshee is started.

\begin{DoxyNote}{Note}
For now only arg\+X 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\+L\+L\\
\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 eldbus\+\_\+signal\+\_\+handler\+\_\+match\+\_\+extra\+\_\+vset().



Referenced by eldbus\+\_\+object\+\_\+event\+\_\+callback\+\_\+add(), and eldbus\+\_\+proxy\+\_\+properties\+\_\+changed\+\_\+callback\+\_\+add().

\hypertarget{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[{eldbus\+\_\+signal\+\_\+handler\+\_\+match\+\_\+extra\+\_\+vset}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Eina\+\_\+\+Bool} eldbus\+\_\+signal\+\_\+handler\+\_\+match\+\_\+extra\+\_\+vset (
\begin{DoxyParamCaption}
\item[{{\bf Eldbus\+\_\+\+Signal\+\_\+\+Handler} $\ast$}]{sh, }
\item[{va\+\_\+list}]{ap}
\end{DoxyParamCaption}
)}}\label{group__Eldbus__Signal__Handler_gaa2c32c046b21c5474a2f9eccf5bb8dc2}


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\+L\+L); With this extra arguments this signal handler callback only will be called when Banshee is started.

\begin{DoxyNote}{Note}
For now is only supported arg\+X.
\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\+L\+L\\
\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\+S\+E, E\+I\+N\+A\+\_\+\+I\+N\+L\+I\+S\+T\+\_\+\+G\+E\+T, eina\+\_\+inlist\+\_\+sorted\+\_\+state\+\_\+insert(), eina\+\_\+strbuf\+\_\+string\+\_\+get(), eina\+\_\+stringshare\+\_\+add(), E\+I\+N\+A\+\_\+\+T\+R\+U\+E, and E\+R\+R.



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

