108
108
A typical simple approver would look liks this:
110
<div class="informalexample">
111
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
114
<td class="listing_lines" align="right"><pre>1
138
<td class="listing_code"><pre class="programlisting"><span class="keyword">static</span><span class="normal"> </span><span class="type">void</span>
139
<span class="function">my_add_dispatch_operation</span><span class="normal"> </span><span class="symbol">(</span><span class="usertype">TpSimpleApprover</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">approver</span><span class="symbol">,</span>
140
<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>
141
<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>
142
<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>
143
<span class="normal"> </span><span class="usertype">TpChannelDispatchOperation</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">dispatch_operation</span><span class="symbol">,</span>
144
<span class="normal"> </span><span class="usertype">TpAddDispatchOperationContext</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">context</span><span class="symbol">,</span>
145
<span class="normal"> </span><span class="usertype">gpointer</span><span class="normal"> user_data</span><span class="symbol">)</span>
146
<span class="cbracket">{</span>
147
<span class="normal"> </span><span class="comment">/* call tp_channel_dispatch_operation_handle_with_async()</span>
148
<span class="comment"> if wanting to approve the channels */</span>
150
<span class="normal"> </span><span class="function"><a href="telepathy-glib-add-dispatch-operation-context.html#tp-add-dispatch-operation-context-accept">tp_add_dispatch_operation_context_accept</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">context</span><span class="symbol">);</span>
151
<span class="cbracket">}</span>
153
<span class="normal">client </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="telepathy-glib-simple-approver.html#tp-simple-approver-new">tp_simple_approver_new</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">dbus</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"MyApprover"</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>
154
<span class="normal"> my_add_dispatch_operation</span><span class="symbol">,</span><span class="normal"> user_data</span><span class="symbol">);</span>
156
<span class="function"><a href="telepathy-glib-base-client.html#tp-base-client-take-approver-filter">tp_base_client_take_approver_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>
157
<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>
158
<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>
159
<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>
161
<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>
110
<div class="informalexample"><pre class="programlisting">
112
my_add_dispatch_operation (TpSimpleApprover *approver,
114
TpConnection *connection,
116
TpChannelDispatchOperation *dispatch_operation,
117
TpAddDispatchOperationContext *context,
120
/* call tp_channel_dispatch_operation_handle_with_async()
121
if wanting to approve the channels */
123
tp_add_dispatch_operation_context_accept (context);
126
client = tp_simple_approver_new (dbus, "MyApprover", FALSE,
127
my_add_dispatch_operation, user_data);
129
tp_base_client_take_approver_filter (client, tp_asv_new (
130
TP_PROP_CHANNEL_CHANNEL_TYPE, G_TYPE_STRING, TP_IFACE_CHANNEL_TYPE_TEXT,
131
TP_PROP_CHANNEL_TARGET_HANDLE_TYPE, G_TYPE_UINT, TP_HANDLE_TYPE_CONTACT,
134
tp_base_client_register (client, NULL);