\doxysection{simple-\/signal-\/emit.\+c}
\hypertarget{simple-signal-emit_8c-example}{}\label{simple-signal-emit_8c-example}Server that registers a service interface and emits simple signals.

Server that registers a service interface and emits simple signals.


\begin{DoxyCodeInclude}{0}
\DoxyCodeLine{\textcolor{comment}{//Compile\ with:}}
\DoxyCodeLine{\textcolor{comment}{//\ gcc\ -\/o\ simple-\/signal-\/emit\ simple-\/signal-\/emit.c\ \`{}pkg-\/config\ -\/-\/cflags\ -\/-\/libs\ eldbus`}}
\DoxyCodeLine{}
\DoxyCodeLine{\textcolor{preprocessor}{\#include\ <Eldbus.h>}}
\DoxyCodeLine{}
\DoxyCodeLine{\textcolor{keyword}{enum}\ \{}
\DoxyCodeLine{\ \ \ TEST\_SIGNAL\_ALIVE,}
\DoxyCodeLine{\ \ \ TEST\_SIGNAL\_PROP,}
\DoxyCodeLine{\ \ \ TEST\_SIGNAL\_NAME,}
\DoxyCodeLine{\};}
\DoxyCodeLine{}
\DoxyCodeLine{\textcolor{keyword}{static}\ \textcolor{keyword}{const}\ \mbox{\hyperlink{struct__Eldbus__Signal}{Eldbus\_Signal}}\ test\_signals[]\ =\ \{}
\DoxyCodeLine{\ \ \ [TEST\_SIGNAL\_ALIVE]\ =\ \{\ \textcolor{stringliteral}{"{}Alive"{}}\ \},}
\DoxyCodeLine{\ \ \ [TEST\_SIGNAL\_PROP]\ =\ \{\ \textcolor{stringliteral}{"{}Properties"{}},\ \mbox{\hyperlink{group__Eldbus__Service_gab77338df786b5ad2a9f86693432f23a4}{ELDBUS\_ARGS}}(\{\ \textcolor{stringliteral}{"{}a\{ss\}"{}},\ \textcolor{stringliteral}{"{}properties"{}}\})\ \},}
\DoxyCodeLine{\ \ \ [TEST\_SIGNAL\_NAME]\ =\ \{\ \textcolor{stringliteral}{"{}Name"{}},\ \mbox{\hyperlink{group__Eldbus__Service_gab77338df786b5ad2a9f86693432f23a4}{ELDBUS\_ARGS}}(\{\ \textcolor{stringliteral}{"{}s"{}},\ \textcolor{stringliteral}{"{}name"{}}\})\ \},}
\DoxyCodeLine{\ \ \ \{\ \}}
\DoxyCodeLine{\};}
\DoxyCodeLine{}
\DoxyCodeLine{\textcolor{comment}{/*\ signal\ with\ complex\ arguments\ (a\ dict)\ */}}
\DoxyCodeLine{\textcolor{keyword}{static}\ \textcolor{keywordtype}{void}\ emit\_properties(Eldbus\_Service\_Interface\ *iface)}
\DoxyCodeLine{\{}
\DoxyCodeLine{\ \ \ \mbox{\hyperlink{group__Eldbus__Core_ga14e8c4d4b96af5fb8bb5c66dc315593a}{Eldbus\_Message}}\ *alive2;}
\DoxyCodeLine{\ \ \ \mbox{\hyperlink{group__Eldbus__Core_ga08a70c6651064414e56d75fba2232925}{Eldbus\_Message\_Iter}}\ *iter,\ *dict;}
\DoxyCodeLine{\ \ \ \textcolor{keyword}{struct\ }keyval\ \{}
\DoxyCodeLine{\ \ \ \ \ \ \textcolor{keyword}{const}\ \textcolor{keywordtype}{char}\ *key;}
\DoxyCodeLine{\ \ \ \ \ \ \textcolor{keyword}{const}\ \textcolor{keywordtype}{char}\ *val;}
\DoxyCodeLine{\ \ \ \}\ keyval[]\ =\ \{}
\DoxyCodeLine{\ \ \ \ \ \ \{\ \textcolor{stringliteral}{"{}key1"{}},\ \textcolor{stringliteral}{"{}val1"{}}\ \},}
\DoxyCodeLine{\ \ \ \ \ \ \{\ \textcolor{stringliteral}{"{}key2"{}},\ \textcolor{stringliteral}{"{}val2"{}}\ \},}
\DoxyCodeLine{\ \ \ \ \ \ \{\ \}}
\DoxyCodeLine{\ \ \ \};}
\DoxyCodeLine{\ \ \ \textcolor{keyword}{struct\ }keyval\ *k;}
\DoxyCodeLine{}
\DoxyCodeLine{\ \ \ alive2\ =\ \mbox{\hyperlink{group__Eldbus__Service_ga7b736920a3d57d8dcedb9a348b970596}{eldbus\_service\_signal\_new}}(iface,\ TEST\_SIGNAL\_PROP);}
\DoxyCodeLine{\ \ \ iter\ =\ \mbox{\hyperlink{group__Eldbus__Message__Iter_ga847256246b5c192f076d204c55e7ac11}{eldbus\_message\_iter\_get}}(alive2);}
\DoxyCodeLine{\ \ \ dict\ =\ \mbox{\hyperlink{group__Eldbus__Message__Iter_ga693607426e8bc5fe31be856c137a4a61}{eldbus\_message\_iter\_container\_new}}(iter,\ \textcolor{charliteral}{'a'},\ \textcolor{stringliteral}{"{}\{ss\}"{}});}
\DoxyCodeLine{}
\DoxyCodeLine{\ \ \ \textcolor{keywordflow}{for}\ (k\ =\ keyval;\ k\ \&\&\ k-\/>key;\ k++)}
\DoxyCodeLine{\ \ \ \ \ \{}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \mbox{\hyperlink{group__Eldbus__Core_ga08a70c6651064414e56d75fba2232925}{Eldbus\_Message\_Iter}}\ *entry\ =\ \mbox{\hyperlink{group__Eldbus__Message__Iter_ga693607426e8bc5fe31be856c137a4a61}{eldbus\_message\_iter\_container\_new}}(dict,\ \textcolor{charliteral}{'e'},}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ NULL);}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \mbox{\hyperlink{group__Eldbus__Message__Iter_gae00cddea6435838b7189bcf5ca816332}{eldbus\_message\_iter\_arguments\_append}}(entry,\ \textcolor{stringliteral}{"{}ss"{}},\ k-\/>key,\ k-\/>val);}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \mbox{\hyperlink{group__Eldbus__Message__Iter_ga01840f4c9fb71cbf1c8081cf4e84189c}{eldbus\_message\_iter\_container\_close}}(dict,\ entry);}
\DoxyCodeLine{\ \ \ \ \ \}}
\DoxyCodeLine{}
\DoxyCodeLine{\ \ \ \mbox{\hyperlink{group__Eldbus__Message__Iter_ga01840f4c9fb71cbf1c8081cf4e84189c}{eldbus\_message\_iter\_container\_close}}(iter,\ dict);}
\DoxyCodeLine{\ \ \ \mbox{\hyperlink{group__Eldbus__Service_gabcd4af078093c616f025bc05a95c04a7}{eldbus\_service\_signal\_send}}(iface,\ alive2);}
\DoxyCodeLine{\}}
\DoxyCodeLine{}
\DoxyCodeLine{\textcolor{comment}{/*\ signal\ with\ basic\ args\ */}}
\DoxyCodeLine{\textcolor{keyword}{static}\ \textcolor{keywordtype}{void}\ emit\_name(Eldbus\_Service\_Interface\ *iface)}
\DoxyCodeLine{\{}
\DoxyCodeLine{\ \ \ \mbox{\hyperlink{group__Eldbus__Service_ga710a0428a3bb8d0f436a030272c9f82b}{eldbus\_service\_signal\_emit}}(iface,\ TEST\_SIGNAL\_NAME,\ \textcolor{stringliteral}{"{}TEST"{}});}
\DoxyCodeLine{\}}
\DoxyCodeLine{}
\DoxyCodeLine{\textcolor{comment}{/*\ simple\ signal\ example\ */}}
\DoxyCodeLine{\textcolor{keyword}{static}\ \textcolor{keywordtype}{void}\ emit\_alive(Eldbus\_Service\_Interface\ *iface)}
\DoxyCodeLine{\{}
\DoxyCodeLine{\ \ \ \mbox{\hyperlink{group__Eldbus__Service_ga710a0428a3bb8d0f436a030272c9f82b}{eldbus\_service\_signal\_emit}}(iface,\ TEST\_SIGNAL\_ALIVE);}
\DoxyCodeLine{\}}
\DoxyCodeLine{}
\DoxyCodeLine{\textcolor{keyword}{static}\ \textcolor{keyword}{const}\ \mbox{\hyperlink{struct__Eldbus__Service__Interface__Desc}{Eldbus\_Service\_Interface\_Desc}}\ iface\_desc\ =\ \{}
\DoxyCodeLine{\ \ \ \textcolor{stringliteral}{"{}org.enlightenment.Test"{}},\ NULL,\ test\_signals}
\DoxyCodeLine{\};}
\DoxyCodeLine{}
\DoxyCodeLine{\textcolor{keywordtype}{int}\ main(\textcolor{keywordtype}{void})}
\DoxyCodeLine{\{}
\DoxyCodeLine{\ \ \ \mbox{\hyperlink{group__Eldbus_ga1de8233c3e9240291bb952776810c831}{Eldbus\_Connection}}\ *conn;}
\DoxyCodeLine{\ \ \ Eldbus\_Service\_Interface\ *iface;}
\DoxyCodeLine{}
\DoxyCodeLine{\ \ \ \mbox{\hyperlink{group__Eldbus__Core_gadd7c8b8a43b5dd590f7fd06166288754}{eldbus\_init}}();}
\DoxyCodeLine{}
\DoxyCodeLine{\ \ \ conn\ =\ \mbox{\hyperlink{group__Eldbus__Connection_gac73e69791d7b884af458390b9c30925a}{eldbus\_connection\_get}}(ELDBUS\_CONNECTION\_TYPE\_SESSION);}
\DoxyCodeLine{\ \ \ iface\ =\ \mbox{\hyperlink{group__Eldbus__Service_ga61f2b60d902185277b644d7bf8931e4d}{eldbus\_service\_interface\_register}}(conn,\ \textcolor{stringliteral}{"{}/org/enlightenment"{}},}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \&iface\_desc);}
\DoxyCodeLine{}
\DoxyCodeLine{\ \ \ emit\_alive(iface);}
\DoxyCodeLine{\ \ \ emit\_name(iface);}
\DoxyCodeLine{\ \ \ emit\_properties(iface);}
\DoxyCodeLine{}
\DoxyCodeLine{\ \ \ \mbox{\hyperlink{group__Eldbus__Connection_ga1c035aac8b601b416bba11d0d68f80ae}{eldbus\_connection\_unref}}(conn);}
\DoxyCodeLine{}
\DoxyCodeLine{\ \ \ \mbox{\hyperlink{group__Eldbus__Core_ga255ee3e090da6704d009ee74ba9d8a79}{eldbus\_shutdown}}();}
\DoxyCodeLine{}
\DoxyCodeLine{\ \ \ \textcolor{keywordflow}{return}\ 0;}
\DoxyCodeLine{\}}

\end{DoxyCodeInclude}
 