\hypertarget{group__Eldbus__Service}{\section{Service}
\label{group__Eldbus__Service}\index{Service@{Service}}
}
\subsection*{Data Structures}
\begin{DoxyCompactItemize}
\item 
struct \hyperlink{struct__Eldbus__Arg__Info}{\-\_\-\-Eldbus\-\_\-\-Arg\-\_\-\-Info}
\item 
struct \hyperlink{struct__Eldbus__Method}{\-\_\-\-Eldbus\-\_\-\-Method}
\item 
struct \hyperlink{struct__Eldbus__Signal}{\-\_\-\-Eldbus\-\_\-\-Signal}
\item 
struct \hyperlink{struct__Eldbus__Property}{\-\_\-\-Eldbus\-\_\-\-Property}
\item 
struct \hyperlink{struct__Eldbus__Service__Interface__Desc}{\-\_\-\-Eldbus\-\_\-\-Service\-\_\-\-Interface\-\_\-\-Desc}
\end{DoxyCompactItemize}
\subsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\hypertarget{group__Eldbus__Service_ga7fb31cc88516a6ef95f77ca06c151aeb}{\#define {\bfseries E\-L\-D\-B\-U\-S\-\_\-\-M\-E\-T\-H\-O\-D\-\_\-\-F\-L\-A\-G\-\_\-\-D\-E\-P\-R\-E\-C\-A\-T\-E\-D}~1}\label{group__Eldbus__Service_ga7fb31cc88516a6ef95f77ca06c151aeb}

\item 
\hypertarget{group__Eldbus__Service_gaf6e9633bddb86309737b802f06f034b3}{\#define {\bfseries E\-L\-D\-B\-U\-S\-\_\-\-M\-E\-T\-H\-O\-D\-\_\-\-F\-L\-A\-G\-\_\-\-N\-O\-R\-E\-P\-L\-Y}~(1 $<$$<$ 1)}\label{group__Eldbus__Service_gaf6e9633bddb86309737b802f06f034b3}

\item 
\hypertarget{group__Eldbus__Service_gad3127e2f4db6df6a4b781ad084fde047}{\#define {\bfseries E\-L\-D\-B\-U\-S\-\_\-\-S\-I\-G\-N\-A\-L\-\_\-\-F\-L\-A\-G\-\_\-\-D\-E\-P\-R\-E\-C\-A\-T\-E\-D}~1}\label{group__Eldbus__Service_gad3127e2f4db6df6a4b781ad084fde047}

\item 
\hypertarget{group__Eldbus__Service_gaf1e3d19356960cf56dd90d62452edaad}{\#define {\bfseries E\-L\-D\-B\-U\-S\-\_\-\-P\-R\-O\-P\-E\-R\-T\-Y\-\_\-\-F\-L\-A\-G\-\_\-\-D\-E\-P\-R\-E\-C\-A\-T\-E\-D}~1}\label{group__Eldbus__Service_gaf1e3d19356960cf56dd90d62452edaad}

\item 
\#define \hyperlink{group__Eldbus__Service_gab77338df786b5ad2a9f86693432f23a4}{E\-L\-D\-B\-U\-S\-\_\-\-A\-R\-G\-S}(args...)~(const \hyperlink{struct__Eldbus__Arg__Info}{Eldbus\-\_\-\-Arg\-\_\-\-Info}\mbox{[}$\,$\mbox{]})\{ args, \{ N\-U\-L\-L, N\-U\-L\-L \} \}
\begin{DoxyCompactList}\small\item\em Used to insert complete types to signature of methods or signals. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Typedefs}
\begin{DoxyCompactItemize}
\item 
\hypertarget{group__Eldbus__Service_ga2dc3099aa077f8e6a644aceb09a7baae}{typedef struct \hyperlink{struct__Eldbus__Arg__Info}{\-\_\-\-Eldbus\-\_\-\-Arg\-\_\-\-Info} {\bfseries Eldbus\-\_\-\-Arg\-\_\-\-Info}}\label{group__Eldbus__Service_ga2dc3099aa077f8e6a644aceb09a7baae}

\item 
\hypertarget{group__Eldbus__Service_ga10a9decd266f3d36611ace4ed54520e2}{typedef struct \\*
\-\_\-\-Eldbus\-\_\-\-Service\-\_\-\-Interface {\bfseries Eldbus\-\_\-\-Service\-\_\-\-Interface}}\label{group__Eldbus__Service_ga10a9decd266f3d36611ace4ed54520e2}

\item 
\hypertarget{group__Eldbus__Service_gac2903faeec36f047e9adfa2a42a851a9}{typedef \hyperlink{group__Eldbus__Core_ga14e8c4d4b96af5fb8bb5c66dc315593a}{Eldbus\-\_\-\-Message} $\ast$($\ast$ {\bfseries Eldbus\-\_\-\-Method\-\_\-\-Cb} )(const Eldbus\-\_\-\-Service\-\_\-\-Interface $\ast$iface, const \hyperlink{group__Eldbus__Core_ga14e8c4d4b96af5fb8bb5c66dc315593a}{Eldbus\-\_\-\-Message} $\ast$message)}\label{group__Eldbus__Service_gac2903faeec36f047e9adfa2a42a851a9}

\item 
typedef \hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\-\_\-\-Bool}($\ast$ \hyperlink{group__Eldbus__Service_ga762c9fe29393a3840168c7631c35e966}{Eldbus\-\_\-\-Property\-\_\-\-Get\-\_\-\-Cb} )(const Eldbus\-\_\-\-Service\-\_\-\-Interface $\ast$iface, const char $\ast$propname, \hyperlink{group__Eldbus__Core_ga08a70c6651064414e56d75fba2232925}{Eldbus\-\_\-\-Message\-\_\-\-Iter} $\ast$iter, const \hyperlink{group__Eldbus__Core_ga14e8c4d4b96af5fb8bb5c66dc315593a}{Eldbus\-\_\-\-Message} $\ast$request\-\_\-msg, \hyperlink{group__Eldbus__Core_ga14e8c4d4b96af5fb8bb5c66dc315593a}{Eldbus\-\_\-\-Message} $\ast$$\ast$error)
\begin{DoxyCompactList}\small\item\em Callback function to append property value to message. \end{DoxyCompactList}\item 
typedef \hyperlink{group__Eldbus__Core_ga14e8c4d4b96af5fb8bb5c66dc315593a}{Eldbus\-\_\-\-Message} $\ast$($\ast$ \hyperlink{group__Eldbus__Service_gabf4e5ece7d8f1efea3df1427b8cc508a}{Eldbus\-\_\-\-Property\-\_\-\-Set\-\_\-\-Cb} )(const Eldbus\-\_\-\-Service\-\_\-\-Interface $\ast$iface, const char $\ast$propname, \hyperlink{group__Eldbus__Core_ga08a70c6651064414e56d75fba2232925}{Eldbus\-\_\-\-Message\-\_\-\-Iter} $\ast$iter, const \hyperlink{group__Eldbus__Core_ga14e8c4d4b96af5fb8bb5c66dc315593a}{Eldbus\-\_\-\-Message} $\ast$input\-\_\-msg)
\begin{DoxyCompactList}\small\item\em Callback function to set property value from message. \end{DoxyCompactList}\item 
\hypertarget{group__Eldbus__Service_gaf7fb4b87c6ce7f8ee125f522155634b3}{typedef struct \hyperlink{struct__Eldbus__Method}{\-\_\-\-Eldbus\-\_\-\-Method} {\bfseries Eldbus\-\_\-\-Method}}\label{group__Eldbus__Service_gaf7fb4b87c6ce7f8ee125f522155634b3}

\item 
\hypertarget{group__Eldbus__Service_ga56aef5d0bfd6b48e63e1c1427d6f007c}{typedef struct \hyperlink{struct__Eldbus__Signal}{\-\_\-\-Eldbus\-\_\-\-Signal} {\bfseries Eldbus\-\_\-\-Signal}}\label{group__Eldbus__Service_ga56aef5d0bfd6b48e63e1c1427d6f007c}

\item 
\hypertarget{group__Eldbus__Service_ga9366588b4712c85d61fd971f614b79ac}{typedef struct \hyperlink{struct__Eldbus__Property}{\-\_\-\-Eldbus\-\_\-\-Property} {\bfseries Eldbus\-\_\-\-Property}}\label{group__Eldbus__Service_ga9366588b4712c85d61fd971f614b79ac}

\item 
\hypertarget{group__Eldbus__Service_gabe9aa01e1536719f7c234800b158a96c}{typedef struct \\*
\hyperlink{struct__Eldbus__Service__Interface__Desc}{\-\_\-\-Eldbus\-\_\-\-Service\-\_\-\-Interface\-\_\-\-Desc} {\bfseries Eldbus\-\_\-\-Service\-\_\-\-Interface\-\_\-\-Desc}}\label{group__Eldbus__Service_gabe9aa01e1536719f7c234800b158a96c}

\end{DoxyCompactItemize}
\subsection*{Functions}
\begin{DoxyCompactItemize}
\item 
Eldbus\-\_\-\-Service\-\_\-\-Interface $\ast$ \hyperlink{group__Eldbus__Service_ga5e48c24176e0d4e845eaa24be5a89c5b}{eldbus\-\_\-service\-\_\-interface\-\_\-register} (\hyperlink{group__Eldbus__Core_ga5f0557a7e65ed263fcc1678874b8f7e7}{Eldbus\-\_\-\-Connection} $\ast$conn, const char $\ast$path, const \hyperlink{struct__Eldbus__Service__Interface__Desc}{Eldbus\-\_\-\-Service\-\_\-\-Interface\-\_\-\-Desc} $\ast$desc)
\begin{DoxyCompactList}\small\item\em Register an interface in the given path and connection. \end{DoxyCompactList}\item 
Eldbus\-\_\-\-Service\-\_\-\-Interface $\ast$ \hyperlink{group__Eldbus__Service_gadd42330ff9b149f153dc0be70fcaad81}{eldbus\-\_\-service\-\_\-interface\-\_\-fallback\-\_\-register} (\hyperlink{group__Eldbus__Core_ga5f0557a7e65ed263fcc1678874b8f7e7}{Eldbus\-\_\-\-Connection} $\ast$conn, const char $\ast$path, const \hyperlink{struct__Eldbus__Service__Interface__Desc}{Eldbus\-\_\-\-Service\-\_\-\-Interface\-\_\-\-Desc} $\ast$desc)
\begin{DoxyCompactList}\small\item\em Register a fallback interface handler for a given subsection of the object hierarchy. \end{DoxyCompactList}\item 
void \hyperlink{group__Eldbus__Service_ga16f7215afc4c9432c2bf639e437f193c}{eldbus\-\_\-service\-\_\-interface\-\_\-unregister} (Eldbus\-\_\-\-Service\-\_\-\-Interface $\ast$iface)
\begin{DoxyCompactList}\small\item\em Unregister a interface. \end{DoxyCompactList}\item 
\hypertarget{group__Eldbus__Service_gad93bc27e856d7747d76873edff991a3a}{void \hyperlink{group__Eldbus__Service_gad93bc27e856d7747d76873edff991a3a}{eldbus\-\_\-service\-\_\-object\-\_\-unregister} (Eldbus\-\_\-\-Service\-\_\-\-Interface $\ast$iface)}\label{group__Eldbus__Service_gad93bc27e856d7747d76873edff991a3a}

\begin{DoxyCompactList}\small\item\em Unregister all interfaces of the object path that this interface belongs and the object path. \end{DoxyCompactList}\item 
\hypertarget{group__Eldbus__Service_gada16a04bbabc219123cbac90f1aad793}{\hyperlink{group__Eldbus__Core_ga5f0557a7e65ed263fcc1678874b8f7e7}{Eldbus\-\_\-\-Connection} $\ast$ {\bfseries eldbus\-\_\-service\-\_\-connection\-\_\-get} (const Eldbus\-\_\-\-Service\-\_\-\-Interface $\ast$iface)}\label{group__Eldbus__Service_gada16a04bbabc219123cbac90f1aad793}

\item 
\hypertarget{group__Eldbus__Service_ga3633101a16cfe7d80b8649d7bf3e3884}{const char $\ast$ {\bfseries eldbus\-\_\-service\-\_\-object\-\_\-path\-\_\-get} (const Eldbus\-\_\-\-Service\-\_\-\-Interface $\ast$iface)}\label{group__Eldbus__Service_ga3633101a16cfe7d80b8649d7bf3e3884}

\item 
\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\-\_\-\-Bool} \hyperlink{group__Eldbus__Service_ga710a0428a3bb8d0f436a030272c9f82b}{eldbus\-\_\-service\-\_\-signal\-\_\-emit} (const Eldbus\-\_\-\-Service\-\_\-\-Interface $\ast$iface, unsigned int signal\-\_\-id,...)
\begin{DoxyCompactList}\small\item\em Emit a signal handler of the interface with non-\/complex types. \end{DoxyCompactList}\item 
\hyperlink{group__Eldbus__Core_ga14e8c4d4b96af5fb8bb5c66dc315593a}{Eldbus\-\_\-\-Message} $\ast$ \hyperlink{group__Eldbus__Service_ga6448c01e341163b5ce9593416e4e75f3}{eldbus\-\_\-service\-\_\-signal\-\_\-new} (const Eldbus\-\_\-\-Service\-\_\-\-Interface $\ast$iface, unsigned int signal\-\_\-id)
\begin{DoxyCompactList}\small\item\em Create signal message. \end{DoxyCompactList}\item 
\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\-\_\-\-Bool} \hyperlink{group__Eldbus__Service_gabcd4af078093c616f025bc05a95c04a7}{eldbus\-\_\-service\-\_\-signal\-\_\-send} (const Eldbus\-\_\-\-Service\-\_\-\-Interface $\ast$iface, \hyperlink{group__Eldbus__Core_ga14e8c4d4b96af5fb8bb5c66dc315593a}{Eldbus\-\_\-\-Message} $\ast$signal\-\_\-msg)
\begin{DoxyCompactList}\small\item\em Send a signal message. \end{DoxyCompactList}\item 
void \hyperlink{group__Eldbus__Service_ga6f4024c9749ecba16c7f7d6c09b96b49}{eldbus\-\_\-service\-\_\-object\-\_\-data\-\_\-set} (Eldbus\-\_\-\-Service\-\_\-\-Interface $\ast$iface, const char $\ast$key, const void $\ast$data)
\begin{DoxyCompactList}\small\item\em Store data at object path, this data can be obtained from all interfaces of the same object. \end{DoxyCompactList}\item 
void $\ast$ \hyperlink{group__Eldbus__Service_gafae1334e33095b18ba4810d2653c8700}{eldbus\-\_\-service\-\_\-object\-\_\-data\-\_\-get} (const Eldbus\-\_\-\-Service\-\_\-\-Interface $\ast$iface, const char $\ast$key)
\begin{DoxyCompactList}\small\item\em Get data stored in object path. \end{DoxyCompactList}\item 
void $\ast$ \hyperlink{group__Eldbus__Service_gacfd59221d57aedf3b90a63dc206f09f4}{eldbus\-\_\-service\-\_\-object\-\_\-data\-\_\-del} (Eldbus\-\_\-\-Service\-\_\-\-Interface $\ast$iface, const char $\ast$key)
\begin{DoxyCompactList}\small\item\em Del data stored in object path. \end{DoxyCompactList}\item 
\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\-\_\-\-Bool} \hyperlink{group__Eldbus__Service_ga51cfeabdb75e0f0413bb398f12769f67}{eldbus\-\_\-service\-\_\-property\-\_\-changed} (const Eldbus\-\_\-\-Service\-\_\-\-Interface $\ast$iface, const char $\ast$name)
\begin{DoxyCompactList}\small\item\em Add property to list of changed properties A D\-Bus.\-Properties\-Changed signal will be sent in an idler with all properties that have changed. \end{DoxyCompactList}\item 
\hypertarget{group__Eldbus__Service_ga7b22ea92cdc94d4927d2be757a3f0718}{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\-\_\-\-Bool} {\bfseries eldbus\-\_\-service\-\_\-property\-\_\-invalidate\-\_\-set} (const Eldbus\-\_\-\-Service\-\_\-\-Interface $\ast$iface, const char $\ast$name, \hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\-\_\-\-Bool} is\-\_\-invalidate)}\label{group__Eldbus__Service_ga7b22ea92cdc94d4927d2be757a3f0718}

\item 
\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\-\_\-\-Bool} \hyperlink{group__Eldbus__Service_ga9ebf1302c3be4a23011477b6a2f1ae65}{eldbus\-\_\-service\-\_\-object\-\_\-manager\-\_\-attach} (Eldbus\-\_\-\-Service\-\_\-\-Interface $\ast$iface)
\begin{DoxyCompactList}\small\item\em Attach Object\-Manager interface. \end{DoxyCompactList}\item 
\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\-\_\-\-Bool} \hyperlink{group__Eldbus__Service_gafb7c735cafee5049992283526168a108}{eldbus\-\_\-service\-\_\-object\-\_\-manager\-\_\-detach} (Eldbus\-\_\-\-Service\-\_\-\-Interface $\ast$iface)
\begin{DoxyCompactList}\small\item\em Detach Object\-Manager interface. \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}


\subsection{Macro Definition Documentation}
\hypertarget{group__Eldbus__Service_gab77338df786b5ad2a9f86693432f23a4}{\index{Service@{Service}!E\-L\-D\-B\-U\-S\-\_\-\-A\-R\-G\-S@{E\-L\-D\-B\-U\-S\-\_\-\-A\-R\-G\-S}}
\index{E\-L\-D\-B\-U\-S\-\_\-\-A\-R\-G\-S@{E\-L\-D\-B\-U\-S\-\_\-\-A\-R\-G\-S}!Service@{Service}}
\subsubsection[{E\-L\-D\-B\-U\-S\-\_\-\-A\-R\-G\-S}]{\setlength{\rightskip}{0pt plus 5cm}\#define E\-L\-D\-B\-U\-S\-\_\-\-A\-R\-G\-S(
\begin{DoxyParamCaption}
\item[{}]{args...}
\end{DoxyParamCaption}
)~(const {\bf Eldbus\-\_\-\-Arg\-\_\-\-Info}\mbox{[}$\,$\mbox{]})\{ args, \{ N\-U\-L\-L, N\-U\-L\-L \} \}}}\label{group__Eldbus__Service_gab77338df786b5ad2a9f86693432f23a4}


Used to insert complete types to signature of methods or signals. 

Example\-: E\-L\-D\-B\-U\-S\-\_\-\-A\-R\-G\-S(\{\char`\"{}s\char`\"{}, \char`\"{}interface\char`\"{}\}, \{\char`\"{}s\char`\"{}, \char`\"{}property\char`\"{}\}) The signature will be \char`\"{}ss\char`\"{} and each string will have a tag name on introspect X\-M\-L with the respective name. \begin{Desc}
\item[Examples\-: ]\par
\hyperlink{complex-types-server_8c-example}{complex-\/types-\/server.\-c}, \hyperlink{server_8c-example}{server.\-c}, and \hyperlink{simple-signal-emit_8c-example}{simple-\/signal-\/emit.\-c}.\end{Desc}


\subsection{Typedef Documentation}
\hypertarget{group__Eldbus__Service_ga762c9fe29393a3840168c7631c35e966}{\index{Service@{Service}!Eldbus\-\_\-\-Property\-\_\-\-Get\-\_\-\-Cb@{Eldbus\-\_\-\-Property\-\_\-\-Get\-\_\-\-Cb}}
\index{Eldbus\-\_\-\-Property\-\_\-\-Get\-\_\-\-Cb@{Eldbus\-\_\-\-Property\-\_\-\-Get\-\_\-\-Cb}!Service@{Service}}
\subsubsection[{Eldbus\-\_\-\-Property\-\_\-\-Get\-\_\-\-Cb}]{\setlength{\rightskip}{0pt plus 5cm}typedef {\bf Eina\-\_\-\-Bool}($\ast$ Eldbus\-\_\-\-Property\-\_\-\-Get\-\_\-\-Cb)(const Eldbus\-\_\-\-Service\-\_\-\-Interface $\ast$iface, const char $\ast$propname, {\bf Eldbus\-\_\-\-Message\-\_\-\-Iter} $\ast$iter, const {\bf Eldbus\-\_\-\-Message} $\ast$request\-\_\-msg, {\bf Eldbus\-\_\-\-Message} $\ast$$\ast$error)}}\label{group__Eldbus__Service_ga762c9fe29393a3840168c7631c35e966}


Callback function to append property value to message. 


\begin{DoxyParams}{Parameters}
{\em iface} & interface of property \\
\hline
{\em propname} & name of property \\
\hline
{\em iter} & variant iterator in which value must be appended \\
\hline
{\em request\-\_\-msg} & message that request property \\
\hline
{\em error} & if a error happen you must set a message error to be send caller\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
E\-I\-N\-A\-\_\-\-T\-R\-U\-E if success
\end{DoxyReturn}
\begin{DoxyNote}{Note}
request\-\_\-msg and error arguments are only different from N\-U\-L\-L when a client request a property with Properties.\-Get or Properties.\-Get\-All. Upon calls to \hyperlink{group__Eldbus__Service_ga51cfeabdb75e0f0413bb398f12769f67}{eldbus\-\_\-service\-\_\-property\-\_\-changed()}, this callback will also be called. It's a mistake to return an error in this case because if a property changed, it must have a new value set and it should be able to be read. 
\end{DoxyNote}
\hypertarget{group__Eldbus__Service_gabf4e5ece7d8f1efea3df1427b8cc508a}{\index{Service@{Service}!Eldbus\-\_\-\-Property\-\_\-\-Set\-\_\-\-Cb@{Eldbus\-\_\-\-Property\-\_\-\-Set\-\_\-\-Cb}}
\index{Eldbus\-\_\-\-Property\-\_\-\-Set\-\_\-\-Cb@{Eldbus\-\_\-\-Property\-\_\-\-Set\-\_\-\-Cb}!Service@{Service}}
\subsubsection[{Eldbus\-\_\-\-Property\-\_\-\-Set\-\_\-\-Cb}]{\setlength{\rightskip}{0pt plus 5cm}typedef {\bf Eldbus\-\_\-\-Message}$\ast$($\ast$ Eldbus\-\_\-\-Property\-\_\-\-Set\-\_\-\-Cb)(const Eldbus\-\_\-\-Service\-\_\-\-Interface $\ast$iface, const char $\ast$propname, {\bf Eldbus\-\_\-\-Message\-\_\-\-Iter} $\ast$iter, const {\bf Eldbus\-\_\-\-Message} $\ast$input\-\_\-msg)}}\label{group__Eldbus__Service_gabf4e5ece7d8f1efea3df1427b8cc508a}


Callback function to set property value from message. 


\begin{DoxyParams}{Parameters}
{\em iface} & interface of property \\
\hline
{\em propname} & name of property \\
\hline
{\em input\-\_\-msg} & message call where you have to get value\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Message of response, could be a simple method\-\_\-return, error or N\-U\-L\-L to send response later. 
\end{DoxyReturn}


\subsection{Function Documentation}
\hypertarget{group__Eldbus__Service_ga5e48c24176e0d4e845eaa24be5a89c5b}{\index{Service@{Service}!eldbus\-\_\-service\-\_\-interface\-\_\-register@{eldbus\-\_\-service\-\_\-interface\-\_\-register}}
\index{eldbus\-\_\-service\-\_\-interface\-\_\-register@{eldbus\-\_\-service\-\_\-interface\-\_\-register}!Service@{Service}}
\subsubsection[{eldbus\-\_\-service\-\_\-interface\-\_\-register}]{\setlength{\rightskip}{0pt plus 5cm}Eldbus\-\_\-\-Service\-\_\-\-Interface$\ast$ eldbus\-\_\-service\-\_\-interface\-\_\-register (
\begin{DoxyParamCaption}
\item[{{\bf Eldbus\-\_\-\-Connection} $\ast$}]{conn, }
\item[{const char $\ast$}]{path, }
\item[{const {\bf Eldbus\-\_\-\-Service\-\_\-\-Interface\-\_\-\-Desc} $\ast$}]{desc}
\end{DoxyParamCaption}
)}}\label{group__Eldbus__Service_ga5e48c24176e0d4e845eaa24be5a89c5b}


Register an interface in the given path and connection. 


\begin{DoxyParams}{Parameters}
{\em conn} & where the interface should listen \\
\hline
{\em path} & object path \\
\hline
{\em desc} & description of interface\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Interface 
\end{DoxyReturn}
\hypertarget{group__Eldbus__Service_gadd42330ff9b149f153dc0be70fcaad81}{\index{Service@{Service}!eldbus\-\_\-service\-\_\-interface\-\_\-fallback\-\_\-register@{eldbus\-\_\-service\-\_\-interface\-\_\-fallback\-\_\-register}}
\index{eldbus\-\_\-service\-\_\-interface\-\_\-fallback\-\_\-register@{eldbus\-\_\-service\-\_\-interface\-\_\-fallback\-\_\-register}!Service@{Service}}
\subsubsection[{eldbus\-\_\-service\-\_\-interface\-\_\-fallback\-\_\-register}]{\setlength{\rightskip}{0pt plus 5cm}Eldbus\-\_\-\-Service\-\_\-\-Interface$\ast$ eldbus\-\_\-service\-\_\-interface\-\_\-fallback\-\_\-register (
\begin{DoxyParamCaption}
\item[{{\bf Eldbus\-\_\-\-Connection} $\ast$}]{conn, }
\item[{const char $\ast$}]{path, }
\item[{const {\bf Eldbus\-\_\-\-Service\-\_\-\-Interface\-\_\-\-Desc} $\ast$}]{desc}
\end{DoxyParamCaption}
)}}\label{group__Eldbus__Service_gadd42330ff9b149f153dc0be70fcaad81}


Register a fallback interface handler for a given subsection of the object hierarchy. 

Note\-: Use \hyperlink{group__Eldbus__Service_ga16f7215afc4c9432c2bf639e437f193c}{eldbus\-\_\-service\-\_\-interface\-\_\-unregister()} to unregister a interface. 
\begin{DoxyParams}{Parameters}
{\em conn} & where the interface should listen \\
\hline
{\em path} & a '/' delimited string of path elements \\
\hline
{\em desc} & description of interface \\
\hline
\end{DoxyParams}
\begin{DoxySeeAlso}{See Also}
\hyperlink{group__Eldbus__Service_ga16f7215afc4c9432c2bf639e437f193c}{eldbus\-\_\-service\-\_\-interface\-\_\-unregister()}
\end{DoxySeeAlso}
\begin{DoxySince}{Since}
1.\-9
\end{DoxySince}
\begin{DoxyReturn}{Returns}
Interface 
\end{DoxyReturn}


References E\-I\-N\-A\-\_\-\-T\-R\-U\-E.

\hypertarget{group__Eldbus__Service_ga16f7215afc4c9432c2bf639e437f193c}{\index{Service@{Service}!eldbus\-\_\-service\-\_\-interface\-\_\-unregister@{eldbus\-\_\-service\-\_\-interface\-\_\-unregister}}
\index{eldbus\-\_\-service\-\_\-interface\-\_\-unregister@{eldbus\-\_\-service\-\_\-interface\-\_\-unregister}!Service@{Service}}
\subsubsection[{eldbus\-\_\-service\-\_\-interface\-\_\-unregister}]{\setlength{\rightskip}{0pt plus 5cm}void eldbus\-\_\-service\-\_\-interface\-\_\-unregister (
\begin{DoxyParamCaption}
\item[{Eldbus\-\_\-\-Service\-\_\-\-Interface $\ast$}]{iface}
\end{DoxyParamCaption}
)}}\label{group__Eldbus__Service_ga16f7215afc4c9432c2bf639e437f193c}


Unregister a interface. 

Note\-: This doesn't unregister the object path if interface count reaches 0. Use \hyperlink{group__Eldbus__Service_gad93bc27e856d7747d76873edff991a3a}{eldbus\-\_\-service\-\_\-object\-\_\-unregister()} to unregister the object. 

References eina\-\_\-hash\-\_\-del(), and E\-I\-N\-A\-\_\-\-T\-R\-U\-E.

\hypertarget{group__Eldbus__Service_ga710a0428a3bb8d0f436a030272c9f82b}{\index{Service@{Service}!eldbus\-\_\-service\-\_\-signal\-\_\-emit@{eldbus\-\_\-service\-\_\-signal\-\_\-emit}}
\index{eldbus\-\_\-service\-\_\-signal\-\_\-emit@{eldbus\-\_\-service\-\_\-signal\-\_\-emit}!Service@{Service}}
\subsubsection[{eldbus\-\_\-service\-\_\-signal\-\_\-emit}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Eina\-\_\-\-Bool} eldbus\-\_\-service\-\_\-signal\-\_\-emit (
\begin{DoxyParamCaption}
\item[{const Eldbus\-\_\-\-Service\-\_\-\-Interface $\ast$}]{iface, }
\item[{unsigned int}]{signal\-\_\-id, }
\item[{}]{...}
\end{DoxyParamCaption}
)}}\label{group__Eldbus__Service_ga710a0428a3bb8d0f436a030272c9f82b}


Emit a signal handler of the interface with non-\/complex types. 

Each signal handler have a internal id, the first signal handler of interface is = 0 the second = 1 and go on.


\begin{DoxyParams}{Parameters}
{\em iface} & interface of the signal \\
\hline
{\em signal\-\_\-id} & id of signal \\
\hline
{\em ...} & values that will be send on signal \\
\hline
\end{DoxyParams}


References E\-I\-N\-A\-\_\-\-F\-A\-L\-S\-E, E\-I\-N\-A\-\_\-\-T\-R\-U\-E, eldbus\-\_\-message\-\_\-arguments\-\_\-vappend(), eldbus\-\_\-message\-\_\-unref(), eldbus\-\_\-service\-\_\-signal\-\_\-new(), and eldbus\-\_\-service\-\_\-signal\-\_\-send().

\hypertarget{group__Eldbus__Service_ga6448c01e341163b5ce9593416e4e75f3}{\index{Service@{Service}!eldbus\-\_\-service\-\_\-signal\-\_\-new@{eldbus\-\_\-service\-\_\-signal\-\_\-new}}
\index{eldbus\-\_\-service\-\_\-signal\-\_\-new@{eldbus\-\_\-service\-\_\-signal\-\_\-new}!Service@{Service}}
\subsubsection[{eldbus\-\_\-service\-\_\-signal\-\_\-new}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Eldbus\-\_\-\-Message}$\ast$ eldbus\-\_\-service\-\_\-signal\-\_\-new (
\begin{DoxyParamCaption}
\item[{const Eldbus\-\_\-\-Service\-\_\-\-Interface $\ast$}]{iface, }
\item[{unsigned int}]{signal\-\_\-id}
\end{DoxyParamCaption}
)}}\label{group__Eldbus__Service_ga6448c01e341163b5ce9593416e4e75f3}


Create signal message. 

Each signal handler have a internal id, the first signal handler of interface is = 0 the second = 1 and go on. This function is used when the signal has complex types.


\begin{DoxyParams}{Parameters}
{\em iface} & interface of the signal \\
\hline
{\em signal\-\_\-id} & id of signal \\
\hline
\end{DoxyParams}


Referenced by eldbus\-\_\-service\-\_\-signal\-\_\-emit().

\hypertarget{group__Eldbus__Service_gabcd4af078093c616f025bc05a95c04a7}{\index{Service@{Service}!eldbus\-\_\-service\-\_\-signal\-\_\-send@{eldbus\-\_\-service\-\_\-signal\-\_\-send}}
\index{eldbus\-\_\-service\-\_\-signal\-\_\-send@{eldbus\-\_\-service\-\_\-signal\-\_\-send}!Service@{Service}}
\subsubsection[{eldbus\-\_\-service\-\_\-signal\-\_\-send}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Eina\-\_\-\-Bool} eldbus\-\_\-service\-\_\-signal\-\_\-send (
\begin{DoxyParamCaption}
\item[{const Eldbus\-\_\-\-Service\-\_\-\-Interface $\ast$}]{iface, }
\item[{{\bf Eldbus\-\_\-\-Message} $\ast$}]{signal\-\_\-msg}
\end{DoxyParamCaption}
)}}\label{group__Eldbus__Service_gabcd4af078093c616f025bc05a95c04a7}


Send a signal message. 

On success this will call \hyperlink{group__Eldbus__Message_ga25e968b4f10dc8ee3ab31cbb66a0b8af}{eldbus\-\_\-message\-\_\-unref()} on the 
\begin{DoxyParams}{Parameters}
{\em signal\-\_\-msg,which} & is the intended behavior in 99\% of the cases. Remember to increment the refcount if you want to keep it alive. \\
\hline
\end{DoxyParams}


References E\-I\-N\-A\-\_\-\-T\-R\-U\-E.



Referenced by eldbus\-\_\-service\-\_\-signal\-\_\-emit().

\hypertarget{group__Eldbus__Service_ga6f4024c9749ecba16c7f7d6c09b96b49}{\index{Service@{Service}!eldbus\-\_\-service\-\_\-object\-\_\-data\-\_\-set@{eldbus\-\_\-service\-\_\-object\-\_\-data\-\_\-set}}
\index{eldbus\-\_\-service\-\_\-object\-\_\-data\-\_\-set@{eldbus\-\_\-service\-\_\-object\-\_\-data\-\_\-set}!Service@{Service}}
\subsubsection[{eldbus\-\_\-service\-\_\-object\-\_\-data\-\_\-set}]{\setlength{\rightskip}{0pt plus 5cm}void eldbus\-\_\-service\-\_\-object\-\_\-data\-\_\-set (
\begin{DoxyParamCaption}
\item[{Eldbus\-\_\-\-Service\-\_\-\-Interface $\ast$}]{iface, }
\item[{const char $\ast$}]{key, }
\item[{const void $\ast$}]{data}
\end{DoxyParamCaption}
)}}\label{group__Eldbus__Service_ga6f4024c9749ecba16c7f7d6c09b96b49}


Store data at object path, this data can be obtained from all interfaces of the same object. 


\begin{DoxyParams}{Parameters}
{\em iface} & interface that belong to the object path where data will be stored \\
\hline
{\em key} & to identify data \\
\hline
{\em data} & \\
\hline
\end{DoxyParams}
\hypertarget{group__Eldbus__Service_gafae1334e33095b18ba4810d2653c8700}{\index{Service@{Service}!eldbus\-\_\-service\-\_\-object\-\_\-data\-\_\-get@{eldbus\-\_\-service\-\_\-object\-\_\-data\-\_\-get}}
\index{eldbus\-\_\-service\-\_\-object\-\_\-data\-\_\-get@{eldbus\-\_\-service\-\_\-object\-\_\-data\-\_\-get}!Service@{Service}}
\subsubsection[{eldbus\-\_\-service\-\_\-object\-\_\-data\-\_\-get}]{\setlength{\rightskip}{0pt plus 5cm}void$\ast$ eldbus\-\_\-service\-\_\-object\-\_\-data\-\_\-get (
\begin{DoxyParamCaption}
\item[{const Eldbus\-\_\-\-Service\-\_\-\-Interface $\ast$}]{iface, }
\item[{const char $\ast$}]{key}
\end{DoxyParamCaption}
)}}\label{group__Eldbus__Service_gafae1334e33095b18ba4810d2653c8700}


Get data stored in object path. 


\begin{DoxyParams}{Parameters}
{\em iface} & interface that belongs to the object path where data are stored \\
\hline
{\em key} & that identify data\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
pointer to data if found otherwise N\-U\-L\-L 
\end{DoxyReturn}
\hypertarget{group__Eldbus__Service_gacfd59221d57aedf3b90a63dc206f09f4}{\index{Service@{Service}!eldbus\-\_\-service\-\_\-object\-\_\-data\-\_\-del@{eldbus\-\_\-service\-\_\-object\-\_\-data\-\_\-del}}
\index{eldbus\-\_\-service\-\_\-object\-\_\-data\-\_\-del@{eldbus\-\_\-service\-\_\-object\-\_\-data\-\_\-del}!Service@{Service}}
\subsubsection[{eldbus\-\_\-service\-\_\-object\-\_\-data\-\_\-del}]{\setlength{\rightskip}{0pt plus 5cm}void$\ast$ eldbus\-\_\-service\-\_\-object\-\_\-data\-\_\-del (
\begin{DoxyParamCaption}
\item[{Eldbus\-\_\-\-Service\-\_\-\-Interface $\ast$}]{iface, }
\item[{const char $\ast$}]{key}
\end{DoxyParamCaption}
)}}\label{group__Eldbus__Service_gacfd59221d57aedf3b90a63dc206f09f4}


Del data stored in object path. 


\begin{DoxyParams}{Parameters}
{\em iface} & interface that belongs to the object path where data are stored \\
\hline
{\em key} & that identify data\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
pointer to data if found otherwise N\-U\-L\-L 
\end{DoxyReturn}
\hypertarget{group__Eldbus__Service_ga51cfeabdb75e0f0413bb398f12769f67}{\index{Service@{Service}!eldbus\-\_\-service\-\_\-property\-\_\-changed@{eldbus\-\_\-service\-\_\-property\-\_\-changed}}
\index{eldbus\-\_\-service\-\_\-property\-\_\-changed@{eldbus\-\_\-service\-\_\-property\-\_\-changed}!Service@{Service}}
\subsubsection[{eldbus\-\_\-service\-\_\-property\-\_\-changed}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Eina\-\_\-\-Bool} eldbus\-\_\-service\-\_\-property\-\_\-changed (
\begin{DoxyParamCaption}
\item[{const Eldbus\-\_\-\-Service\-\_\-\-Interface $\ast$}]{iface, }
\item[{const char $\ast$}]{name}
\end{DoxyParamCaption}
)}}\label{group__Eldbus__Service_ga51cfeabdb75e0f0413bb398f12769f67}


Add property to list of changed properties A D\-Bus.\-Properties\-Changed signal will be sent in an idler with all properties that have changed. 


\begin{DoxyParams}{Parameters}
{\em iface} & Interface containing the changed property \\
\hline
{\em name} & Property name \\
\hline
\end{DoxyParams}


References ecore\-\_\-idler\-\_\-add(), eina\-\_\-array\-\_\-new(), and eina\-\_\-hash\-\_\-find().

\hypertarget{group__Eldbus__Service_ga9ebf1302c3be4a23011477b6a2f1ae65}{\index{Service@{Service}!eldbus\-\_\-service\-\_\-object\-\_\-manager\-\_\-attach@{eldbus\-\_\-service\-\_\-object\-\_\-manager\-\_\-attach}}
\index{eldbus\-\_\-service\-\_\-object\-\_\-manager\-\_\-attach@{eldbus\-\_\-service\-\_\-object\-\_\-manager\-\_\-attach}!Service@{Service}}
\subsubsection[{eldbus\-\_\-service\-\_\-object\-\_\-manager\-\_\-attach}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Eina\-\_\-\-Bool} eldbus\-\_\-service\-\_\-object\-\_\-manager\-\_\-attach (
\begin{DoxyParamCaption}
\item[{Eldbus\-\_\-\-Service\-\_\-\-Interface $\ast$}]{iface}
\end{DoxyParamCaption}
)}}\label{group__Eldbus__Service_ga9ebf1302c3be4a23011477b6a2f1ae65}


Attach Object\-Manager interface. 


\begin{DoxyParams}{Parameters}
{\em iface} & Object\-Manager will be attach in object path of this interface. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
E\-I\-N\-A\-\_\-\-T\-R\-U\-E if success 
\end{DoxyReturn}


References ecore\-\_\-idler\-\_\-del(), E\-I\-N\-A\-\_\-\-F\-A\-L\-S\-E, eina\-\_\-hash\-\_\-add(), eina\-\_\-hash\-\_\-find(), and E\-I\-N\-A\-\_\-\-T\-R\-U\-E.

\hypertarget{group__Eldbus__Service_gafb7c735cafee5049992283526168a108}{\index{Service@{Service}!eldbus\-\_\-service\-\_\-object\-\_\-manager\-\_\-detach@{eldbus\-\_\-service\-\_\-object\-\_\-manager\-\_\-detach}}
\index{eldbus\-\_\-service\-\_\-object\-\_\-manager\-\_\-detach@{eldbus\-\_\-service\-\_\-object\-\_\-manager\-\_\-detach}!Service@{Service}}
\subsubsection[{eldbus\-\_\-service\-\_\-object\-\_\-manager\-\_\-detach}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Eina\-\_\-\-Bool} eldbus\-\_\-service\-\_\-object\-\_\-manager\-\_\-detach (
\begin{DoxyParamCaption}
\item[{Eldbus\-\_\-\-Service\-\_\-\-Interface $\ast$}]{iface}
\end{DoxyParamCaption}
)}}\label{group__Eldbus__Service_gafb7c735cafee5049992283526168a108}


Detach Object\-Manager interface. 


\begin{DoxyParams}{Parameters}
{\em iface} & Object\-Manager of object path of this interface will be detach. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
E\-I\-N\-A\-\_\-\-T\-R\-U\-E if success 
\end{DoxyReturn}
Flush the iface\-\_\-add/removed of all children objects that this object is the Object\-Manager

References eina\-\_\-hash\-\_\-del(), E\-I\-N\-A\-\_\-\-I\-N\-L\-I\-S\-T\-\_\-\-F\-O\-R\-E\-A\-C\-H, and E\-I\-N\-A\-\_\-\-T\-R\-U\-E.

