117
117
A typical simple handler would look liks this:
119
<div class="informalexample">
120
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
123
<td class="listing_lines" align="right"><pre>1
148
<td class="listing_code"><pre class="programlisting"><span class="keyword">static</span><span class="normal"> </span><span class="type">void</span>
149
<span class="function">my_handle_channels</span><span class="normal"> </span><span class="symbol">(</span><span class="usertype">TpSimpleHandler</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">handler</span><span class="symbol">,</span>
150
<span class="normal"> </span><span class="usertype">TpAccount</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">account</span><span class="symbol">,</span>
151
<span class="normal"> </span><span class="usertype">TpConnection</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">connection</span><span class="symbol">,</span>
152
<span class="normal"> </span><span class="usertype">GList</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">channels</span><span class="symbol">,</span>
153
<span class="normal"> </span><span class="usertype">GList</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">requests_satisfied</span><span class="symbol">,</span>
154
<span class="normal"> </span><span class="usertype">gint64</span><span class="normal"> user_action_time</span><span class="symbol">,</span>
155
<span class="normal"> </span><span class="usertype">GList</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">requests</span><span class="symbol">,</span>
156
<span class="normal"> </span><span class="usertype">TpHandleChannelsContext</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">context</span><span class="symbol">,</span>
157
<span class="normal"> </span><span class="usertype">gpointer</span><span class="normal"> user_data</span><span class="symbol">)</span>
158
<span class="cbracket">{</span>
159
<span class="normal"> </span><span class="comment">/* start handling the channels here */</span>
161
<span class="normal"> </span><span class="function"><a href="telepathy-glib-handle-channels-context.html#tp-handle-channels-context-accept">tp_handle_channels_context_accept</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">context</span><span class="symbol">);</span>
162
<span class="cbracket">}</span>
164
<span class="normal">client </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="telepathy-glib-simple-handler.html#tp-simple-handler-new">tp_simple_handler_new</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">dbus</span><span class="symbol">,</span><span class="normal"> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS">FALSE</a></span><span class="symbol">,</span><span class="normal"> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS">FALSE</a></span><span class="symbol">,</span><span class="normal"> </span><span class="string">"MyHandler"</span><span class="symbol">,</span><span class="normal"> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS">FALSE</a></span><span class="symbol">,</span>
165
<span class="normal"> my_handle_channels</span><span class="symbol">,</span><span class="normal"> user_data</span><span class="symbol">);</span>
167
<span class="function"><a href="telepathy-glib-base-client.html#tp-base-client-take-handler-filter">tp_base_client_take_handler_filter</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">client</span><span class="symbol">,</span><span class="normal"> </span><span class="function"><a href="telepathy-glib-asv.html#tp-asv-new">tp_asv_new</a></span><span class="normal"> </span><span class="symbol">(</span>
168
<span class="normal"> <a href="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-CHANNEL-TYPE:CAPS">TP_PROP_CHANNEL_CHANNEL_TYPE</a></span><span class="symbol">,</span><span class="normal"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#G-TYPE-STRING:CAPS">G_TYPE_STRING</a></span><span class="symbol">,</span><span class="normal"> <a href="telepathy-glib-interfaces.html#TP-IFACE-CHANNEL-TYPE-TEXT:CAPS">TP_IFACE_CHANNEL_TYPE_TEXT</a></span><span class="symbol">,</span>
169
<span class="normal"> <a href="telepathy-glib-interfaces.html#TP-PROP-CHANNEL-TARGET-HANDLE-TYPE:CAPS">TP_PROP_CHANNEL_TARGET_HANDLE_TYPE</a></span><span class="symbol">,</span><span class="normal"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#G-TYPE-UINT:CAPS">G_TYPE_UINT</a></span><span class="symbol">,</span><span class="normal"> <a href="telepathy-glib-enums.html#TP-HANDLE-TYPE-CONTACT:CAPS">TP_HANDLE_TYPE_CONTACT</a></span><span class="symbol">,</span>
170
<span class="normal"> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">));</span>
172
<span class="function"><a href="telepathy-glib-base-client.html#tp-base-client-register">tp_base_client_register</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">client</span><span class="symbol">,</span><span class="normal"> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">);</span></pre></td>
119
<div class="informalexample"><pre class="programlisting">
121
my_handle_channels (TpSimpleHandler *handler,
123
TpConnection *connection,
125
GList *requests_satisfied,
126
gint64 user_action_time,
128
TpHandleChannelsContext *context,
131
/* start handling the channels here */
133
tp_handle_channels_context_accept (context);
136
client = tp_simple_handler_new (dbus, FALSE, FALSE, "MyHandler", FALSE,
137
my_handle_channels, user_data);
139
tp_base_client_take_handler_filter (client, tp_asv_new (
140
TP_PROP_CHANNEL_CHANNEL_TYPE, G_TYPE_STRING, TP_IFACE_CHANNEL_TYPE_TEXT,
141
TP_PROP_CHANNEL_TARGET_HANDLE_TYPE, G_TYPE_UINT, TP_HANDLE_TYPE_CONTACT,
144
tp_base_client_register (client, NULL);