~ubuntu-branches/ubuntu/wily/telepathy-glib/wily

« back to all changes in this revision

Viewing changes to docs/reference/html/telepathy-glib-account-manager.html

  • Committer: Package Import Robot
  • Author(s): Sjoerd Simons
  • Date: 2011-11-01 11:26:09 UTC
  • mfrom: (1.6.32)
  • Revision ID: package-import@ubuntu.com-20111101112609-kdouxczbx1spr97b
Tags: 0.16.1-1
* New upstream release
* Use vala 0.14

Show diffs side-by-side

added added

removed removed

Lines of Context:
8
8
<link rel="up" href="ch-client.html" title="Client-side proxies">
9
9
<link rel="prev" href="telepathy-glib-media-interfaces.html" title="TpMediaSessionHandler, TpMediaStreamHandler">
10
10
<link rel="next" href="telepathy-glib-account.html" title="TpAccount">
11
 
<meta name="generator" content="GTK-Doc V1.17.1 (XML mode)">
 
11
<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
12
12
<link rel="stylesheet" href="style.css" type="text/css">
13
13
</head>
14
14
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
69
69
                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *path</code></em>);
70
70
<a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *             <a class="link" href="telepathy-glib-account-manager.html#tp-account-manager-get-valid-accounts" title="tp_account_manager_get_valid_accounts ()">tp_account_manager_get_valid_accounts</a>
71
71
                                                        (<em class="parameter"><code><a class="link" href="telepathy-glib-account-manager.html#TpAccountManager"><span class="type">TpAccountManager</span></a> *manager</code></em>);
72
 
<a class="link" href="telepathy-glib-enums.html#TpConnectionPresenceType" title="enum TpConnectionPresenceType"><span class="returnvalue">TpConnectionPresenceType</span></a> <a class="link" href="telepathy-glib-account-manager.html#tp-account-manager-get-most-available-presence" title="tp_account_manager_get_most_available_presence ()">tp_account_manager_get_most_available_presence</a>
 
72
<a class="link" href="telepathy-glib-enums.html#TpConnectionPresenceType" title="enum TpConnectionPresenceType"><span class="returnvalue">TpConnectionPresenceType</span></a>  <a class="link" href="telepathy-glib-account-manager.html#tp-account-manager-get-most-available-presence" title="tp_account_manager_get_most_available_presence ()">tp_account_manager_get_most_available_presence</a>
73
73
                                                        (<em class="parameter"><code><a class="link" href="telepathy-glib-account-manager.html#TpAccountManager"><span class="type">TpAccountManager</span></a> *manager</code></em>,
74
74
                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **status</code></em>,
75
75
                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **message</code></em>);
182
182
</p>
183
183
<div class="example">
184
184
<a name="account-manager"></a><p class="title"><b>Example 2. TpAccountManager example</b></p>
185
 
<div class="example-contents">
186
 
  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
187
 
    <tbody>
188
 
      <tr>
189
 
        <td class="listing_lines" align="right"><pre>1
190
 
2
191
 
3
192
 
4
193
 
5
194
 
6
195
 
7
196
 
8
197
 
9
198
 
10
199
 
11
200
 
12
201
 
13
202
 
14
203
 
15
204
 
16
205
 
17
206
 
18
207
 
19
208
 
20
209
 
21
210
 
22
211
 
23
212
 
24
213
 
25
214
 
26
215
 
27
216
 
28
217
 
29
218
 
30
219
 
31
220
 
32
221
 
33
222
 
34
223
 
35
224
 
36
225
 
37
226
 
38
227
 
39
228
 
40
229
 
41
230
 
42
231
 
43
232
 
44
233
 
45
234
 
46
235
 
47
236
 
48
237
 
49
238
 
50
239
 
51
240
 
52
241
 
53
242
 
54
243
 
55
244
 
56
245
 
57
246
 
58
247
 
59
248
 
60
249
 
61
250
 
62
251
 
63
252
 
64
253
 
65
254
 
66
255
 
67
256
 
68
257
 
69
258
 
70
259
 
71
260
 
72
261
 
73
262
 
74
263
 
75
264
 
76
265
 
77
266
 
78
267
 
79
268
 
80
269
 
81
270
 
82
271
 
83
272
 
84
273
 
85
274
 
86
275
 
87
276
 
88
277
 
89
278
 
90
279
 
91
280
 
92
281
 
93
282
 
94
283
 
95
284
 
96
285
 
97
286
 
98
287
 
99
288
 
100
289
 
101</pre></td>
290
 
        <td class="listing_code"><pre class="programlisting"><span class="comment">/*</span>
291
 
<span class="comment"> * contact-list</span>
292
 
<span class="comment"> *</span>
293
 
<span class="comment"> * Copyright © 2011 Collabora Ltd. </span><span class="url"><a href="&lt;http://www.collabora.co.uk/&gt;">&lt;http://www.collabora.co.uk/&gt;</a></span>
294
 
<span class="comment"> *</span>
295
 
<span class="comment"> * Copying and distribution of this file, with or without modification,</span>
296
 
<span class="comment"> * are permitted in any medium without royalty provided the copyright</span>
297
 
<span class="comment"> * notice and this notice are preserved.</span>
298
 
<span class="comment"> */</span>
299
 
 
300
 
<span class="preproc">#include</span><span class="normal"> </span><span class="string">&lt;telepathy-glib/telepathy-glib.h&gt;</span>
301
 
<span class="preproc">#include</span><span class="normal"> </span><span class="string">&lt;telepathy-glib/debug.h&gt;</span>
302
 
 
303
 
<span class="keyword">static</span><span class="normal"> </span><span class="type">void</span>
304
 
<span class="function">account_manager_prepared_cb</span><span class="normal"> </span><span class="symbol">(</span><span class="usertype">GObject</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">object</span><span class="symbol">,</span>
305
 
<span class="normal">    </span><span class="usertype">GAsyncResult</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">res</span><span class="symbol">,</span>
306
 
<span class="normal">    </span><span class="usertype">gpointer</span><span class="normal"> user_data</span><span class="symbol">)</span>
307
 
<span class="cbracket">{</span>
308
 
<span class="normal">  </span><span class="usertype">TpAccountManager</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">manager </span><span class="symbol">=</span><span class="normal"> </span><span class="symbol">(</span><span class="normal"><a href="telepathy-glib-account-manager.html#TpAccountManager">TpAccountManager</a> </span><span class="symbol">*)</span><span class="normal"> object</span><span class="symbol">;</span>
309
 
<span class="normal">  </span><span class="usertype">GMainLoop</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">loop </span><span class="symbol">=</span><span class="normal"> user_data</span><span class="symbol">;</span><span class="normal">  </span>
310
 
<span class="normal">  </span><span class="usertype">GList</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">accounts</span><span class="symbol">;</span>
311
 
<span class="normal">  </span><span class="usertype">GError</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">error </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>
312
 
 
313
 
<span class="normal">  </span><span class="keyword">if</span><span class="normal"> </span><span class="symbol">(!</span><span class="function"><a href="telepathy-glib-proxy.html#tp-proxy-prepare-finish">tp_proxy_prepare_finish</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">object</span><span class="symbol">,</span><span class="normal"> res</span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">&amp;</span><span class="normal">error</span><span class="symbol">))</span>
314
 
<span class="normal">    </span><span class="cbracket">{</span>
315
 
<span class="normal">      </span><span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Warnings-and-Assertions.html#g-print">g_print</a></span><span class="normal"> </span><span class="symbol">(</span><span class="string">"Error preparing AM: %s</span><span class="specialchar">\n</span><span class="string">"</span><span class="symbol">,</span><span class="normal"> error</span><span class="symbol">-&gt;</span><span class="normal">message</span><span class="symbol">);</span>
316
 
<span class="normal">      </span><span class="keyword">goto</span><span class="normal"> OUT</span><span class="symbol">;</span>
317
 
<span class="normal">    </span><span class="cbracket">}</span>
318
 
 
319
 
<span class="normal">  </span><span class="keyword">for</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">accounts </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="telepathy-glib-account-manager.html#tp-account-manager-get-valid-accounts">tp_account_manager_get_valid_accounts</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">manager</span><span class="symbol">);</span>
320
 
<span class="normal">       accounts </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><span class="normal"> accounts </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#g-list-delete-link">g_list_delete_link</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">accounts</span><span class="symbol">,</span><span class="normal"> accounts</span><span class="symbol">))</span>
321
 
<span class="normal">    </span><span class="cbracket">{</span>
322
 
<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><span class="normal"> accounts</span><span class="symbol">-&gt;</span><span class="normal">data</span><span class="symbol">;</span>
323
 
<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><span class="normal"> </span><span class="function"><a href="telepathy-glib-account.html#tp-account-get-connection">tp_account_get_connection</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">account</span><span class="symbol">);</span>
324
 
<span class="normal">      </span><span class="usertype">GPtrArray</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">contacts</span><span class="symbol">;</span>
325
 
<span class="normal">      </span><span class="usertype">guint</span><span class="normal"> i</span><span class="symbol">;</span>
326
 
 
327
 
<span class="normal">      </span><span class="comment">/* Verify account is online and received its contact list. If state is not</span>
328
 
<span class="comment">       * SUCCESS this means we didn't received the roster from server yet and</span>
329
 
<span class="comment">       * we would have to wait for the "notify:contact-list-state" signal. */</span>
330
 
<span class="normal">      </span><span class="keyword">if</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">connection </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>
331
 
<span class="normal">          </span><span class="function"><a href="telepathy-glib-connection.html#tp-connection-get-contact-list-state">tp_connection_get_contact_list_state</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">connection</span><span class="symbol">)</span><span class="normal"> </span><span class="symbol">!=</span>
332
 
<span class="normal">              <a href="telepathy-glib-enums.html#TP-CONTACT-LIST-STATE-SUCCESS:CAPS">TP_CONTACT_LIST_STATE_SUCCESS</a></span><span class="symbol">)</span>
333
 
<span class="normal">        </span><span class="keyword">continue</span><span class="symbol">;</span>
334
 
 
335
 
<span class="normal">      contacts </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="telepathy-glib-connection.html#tp-connection-dup-contact-list">tp_connection_dup_contact_list</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">connection</span><span class="symbol">);</span>
336
 
<span class="normal">      </span><span class="keyword">for</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">i </span><span class="symbol">=</span><span class="normal"> </span><span class="number">0</span><span class="symbol">;</span><span class="normal"> i </span><span class="symbol">&lt;</span><span class="normal"> contacts</span><span class="symbol">-&gt;</span><span class="normal">len</span><span class="symbol">;</span><span class="normal"> i</span><span class="symbol">++)</span>
337
 
<span class="normal">        </span><span class="cbracket">{</span>
338
 
<span class="normal">          </span><span class="usertype">TpContact</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">contact </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Pointer-Arrays.html#g-ptr-array-index">g_ptr_array_index</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">contacts</span><span class="symbol">,</span><span class="normal"> i</span><span class="symbol">);</span>
339
 
<span class="normal">          </span><span class="keyword">const</span><span class="normal"> <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar">gchar</a> </span><span class="symbol">*</span><span class="normal"> </span><span class="keyword">const</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">groups</span><span class="symbol">;</span>
340
 
 
341
 
<span class="normal">          </span><span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Warnings-and-Assertions.html#g-print">g_print</a></span><span class="normal"> </span><span class="symbol">(</span><span class="string">"contact %s (%s) in groups:</span><span class="specialchar">\n</span><span class="string">"</span><span class="symbol">,</span>
342
 
<span class="normal">              </span><span class="function"><a href="telepathy-glib-contact.html#tp-contact-get-identifier">tp_contact_get_identifier</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">contact</span><span class="symbol">),</span>
343
 
<span class="normal">              </span><span class="function"><a href="telepathy-glib-contact.html#tp-contact-get-alias">tp_contact_get_alias</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">contact</span><span class="symbol">));</span>
344
 
 
345
 
<span class="normal">          </span><span class="keyword">for</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">groups </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="telepathy-glib-contact.html#tp-contact-get-contact-groups">tp_contact_get_contact_groups</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">contact</span><span class="symbol">);</span>
346
 
<span class="normal">               </span><span class="symbol">*</span><span class="normal">groups </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><span class="normal"> groups</span><span class="symbol">++)</span>
347
 
<span class="normal">            </span><span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Warnings-and-Assertions.html#g-print">g_print</a></span><span class="normal"> </span><span class="symbol">(</span><span class="string">"  %s</span><span class="specialchar">\n</span><span class="string">"</span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">groups</span><span class="symbol">);</span>
348
 
<span class="normal">        </span><span class="cbracket">}</span>
349
 
<span class="normal">      </span><span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Pointer-Arrays.html#g-ptr-array-unref">g_ptr_array_unref</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">contacts</span><span class="symbol">);</span>
350
 
<span class="normal">    </span><span class="cbracket">}</span>
351
 
 
352
 
<span class="label">OUT:</span>
353
 
<span class="normal">  </span><span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-The-Main-Event-Loop.html#g-main-loop-quit">g_main_loop_quit</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">loop</span><span class="symbol">);</span>
354
 
<span class="cbracket">}</span>
355
 
 
356
 
<span class="type">int</span>
357
 
<span class="function">main</span><span class="normal"> </span><span class="symbol">(</span><span class="type">int</span><span class="normal"> argc</span><span class="symbol">,</span>
358
 
<span class="normal">      </span><span class="type">char</span><span class="normal"> </span><span class="symbol">**</span><span class="normal">argv</span><span class="symbol">)</span>
359
 
<span class="cbracket">{</span>
360
 
<span class="normal">  </span><span class="usertype">TpAccountManager</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">manager</span><span class="symbol">;</span>
361
 
<span class="normal">  </span><span class="usertype">TpSimpleClientFactory</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">factory</span><span class="symbol">;</span>
362
 
<span class="normal">  </span><span class="usertype">GMainLoop</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">loop</span><span class="symbol">;</span>
363
 
 
364
 
<span class="normal">  </span><span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#g-type-init">g_type_init</a></span><span class="normal"> </span><span class="symbol">();</span>
365
 
<span class="normal">  </span><span class="function"><a href="telepathy-glib-debug.html#tp-debug-set-flags">tp_debug_set_flags</a></span><span class="normal"> </span><span class="symbol">(</span><span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Miscellaneous-Utility-Functions.html#g-getenv">g_getenv</a></span><span class="normal"> </span><span class="symbol">(</span><span class="string">"EXAMPLE_DEBUG"</span><span class="symbol">));</span>
366
 
 
367
 
<span class="normal">  loop </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-The-Main-Event-Loop.html#g-main-loop-new">g_main_loop_new</a></span><span class="normal"> </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><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>
368
 
 
369
 
<span class="normal">  manager </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="telepathy-glib-account-manager.html#tp-account-manager-dup">tp_account_manager_dup</a></span><span class="normal"> </span><span class="symbol">();</span>
370
 
<span class="normal">  factory </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="telepathy-glib-proxy.html#tp-proxy-get-factory">tp_proxy_get_factory</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">manager</span><span class="symbol">);</span>
371
 
<span class="normal">  </span><span class="function"><a href="telepathy-glib-simple-client-factory.html#tp-simple-client-factory-add-account-features-varargs">tp_simple_client_factory_add_account_features_varargs</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">factory</span><span class="symbol">,</span>
372
 
<span class="normal">      <a href="telepathy-glib-account.html#TP-ACCOUNT-FEATURE-CONNECTION:CAPS">TP_ACCOUNT_FEATURE_CONNECTION</a></span><span class="symbol">,</span>
373
 
<span class="normal">      </span><span class="number">0</span><span class="symbol">);</span>
374
 
<span class="normal">  </span><span class="function"><a href="telepathy-glib-simple-client-factory.html#tp-simple-client-factory-add-connection-features-varargs">tp_simple_client_factory_add_connection_features_varargs</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">factory</span><span class="symbol">,</span>
375
 
<span class="normal">      <a href="telepathy-glib-connection.html#TP-CONNECTION-FEATURE-CONTACT-LIST:CAPS">TP_CONNECTION_FEATURE_CONTACT_LIST</a></span><span class="symbol">,</span>
376
 
<span class="normal">      </span><span class="number">0</span><span class="symbol">);</span>
377
 
<span class="normal">  </span><span class="function"><a href="telepathy-glib-simple-client-factory.html#tp-simple-client-factory-add-contact-features-varargs">tp_simple_client_factory_add_contact_features_varargs</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">factory</span><span class="symbol">,</span>
378
 
<span class="normal">      <a href="telepathy-glib-contact.html#TP-CONTACT-FEATURE-ALIAS:CAPS">TP_CONTACT_FEATURE_ALIAS</a></span><span class="symbol">,</span>
379
 
<span class="normal">      <a href="telepathy-glib-contact.html#TP-CONTACT-FEATURE-CONTACT-GROUPS:CAPS">TP_CONTACT_FEATURE_CONTACT_GROUPS</a></span><span class="symbol">,</span>
380
 
<span class="normal">      <a href="telepathy-glib-contact.html#TP-CONTACT-FEATURE-INVALID:CAPS">TP_CONTACT_FEATURE_INVALID</a></span><span class="symbol">);</span>
381
 
 
382
 
<span class="normal">  </span><span class="function"><a href="telepathy-glib-proxy.html#tp-proxy-prepare-async">tp_proxy_prepare_async</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">manager</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><span class="normal"> account_manager_prepared_cb</span><span class="symbol">,</span><span class="normal"> loop</span><span class="symbol">);</span>
383
 
 
384
 
<span class="normal">  </span><span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-The-Main-Event-Loop.html#g-main-loop-run">g_main_loop_run</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">loop</span><span class="symbol">);</span>
385
 
 
386
 
<span class="normal">  </span><span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-unref">g_object_unref</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">manager</span><span class="symbol">);</span>
387
 
<span class="normal">  </span><span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-The-Main-Event-Loop.html#g-main-loop-unref">g_main_loop_unref</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">loop</span><span class="symbol">);</span>
388
 
 
389
 
<span class="normal">  </span><span class="keyword">return</span><span class="normal"> </span><span class="number">0</span><span class="symbol">;</span>
390
 
<span class="cbracket">}</span></pre></td>
391
 
      </tr>
392
 
    </tbody>
393
 
  </table>
394
 
</div>
395
 
 
 
185
<div class="example-contents"><pre class="programlisting">/*
 
186
 * contact-list
 
187
 *
 
188
 * Copyright © 2011 Collabora Ltd. &lt;http://www.collabora.co.uk/&gt;
 
189
 *
 
190
 * Copying and distribution of this file, with or without modification,
 
191
 * are permitted in any medium without royalty provided the copyright
 
192
 * notice and this notice are preserved.
 
193
 */
 
194
 
 
195
#include &lt;telepathy-glib/telepathy-glib.h&gt;
 
196
#include &lt;telepathy-glib/debug.h&gt;
 
197
 
 
198
static void
 
199
account_manager_prepared_cb (GObject *object,
 
200
    GAsyncResult *res,
 
201
    gpointer user_data)
 
202
{
 
203
  TpAccountManager *manager = (TpAccountManager *) object;
 
204
  GMainLoop *loop = user_data;  
 
205
  GList *accounts;
 
206
  GError *error = NULL;
 
207
 
 
208
  if (!tp_proxy_prepare_finish (object, res, &amp;error))
 
209
    {
 
210
      g_print ("Error preparing AM: %s\n", error-&gt;message);
 
211
      goto OUT;
 
212
    }
 
213
 
 
214
  for (accounts = tp_account_manager_get_valid_accounts (manager);
 
215
       accounts != NULL; accounts = g_list_delete_link (accounts, accounts))
 
216
    {
 
217
      TpAccount *account = accounts-&gt;data;
 
218
      TpConnection *connection = tp_account_get_connection (account);
 
219
      GPtrArray *contacts;
 
220
      guint i;
 
221
 
 
222
      /* Verify account is online and received its contact list. If state is not
 
223
       * SUCCESS this means we didn't received the roster from server yet and
 
224
       * we would have to wait for the "notify:contact-list-state" signal. */
 
225
      if (connection == NULL ||
 
226
          tp_connection_get_contact_list_state (connection) !=
 
227
              TP_CONTACT_LIST_STATE_SUCCESS)
 
228
        continue;
 
229
 
 
230
      contacts = tp_connection_dup_contact_list (connection);
 
231
      for (i = 0; i &lt; contacts-&gt;len; i++)
 
232
        {
 
233
          TpContact *contact = g_ptr_array_index (contacts, i);
 
234
          const gchar * const *groups;
 
235
 
 
236
          g_print ("contact %s (%s) in groups:\n",
 
237
              tp_contact_get_identifier (contact),
 
238
              tp_contact_get_alias (contact));
 
239
 
 
240
          for (groups = tp_contact_get_contact_groups (contact);
 
241
               *groups != NULL; groups++)
 
242
            g_print ("  %s\n", *groups);
 
243
        }
 
244
      g_ptr_array_unref (contacts);
 
245
    }
 
246
 
 
247
OUT:
 
248
  g_main_loop_quit (loop);
 
249
}
 
250
 
 
251
int
 
252
main (int argc,
 
253
      char **argv)
 
254
{
 
255
  TpAccountManager *manager;
 
256
  TpSimpleClientFactory *factory;
 
257
  GMainLoop *loop;
 
258
 
 
259
  g_type_init ();
 
260
  tp_debug_set_flags (g_getenv ("EXAMPLE_DEBUG"));
 
261
 
 
262
  loop = g_main_loop_new (NULL, FALSE);
 
263
 
 
264
  manager = tp_account_manager_dup ();
 
265
  factory = tp_proxy_get_factory (manager);
 
266
  tp_simple_client_factory_add_account_features_varargs (factory,
 
267
      TP_ACCOUNT_FEATURE_CONNECTION,
 
268
      0);
 
269
  tp_simple_client_factory_add_connection_features_varargs (factory,
 
270
      TP_CONNECTION_FEATURE_CONTACT_LIST,
 
271
      0);
 
272
  tp_simple_client_factory_add_contact_features_varargs (factory,
 
273
      TP_CONTACT_FEATURE_ALIAS,
 
274
      TP_CONTACT_FEATURE_CONTACT_GROUPS,
 
275
      TP_CONTACT_FEATURE_INVALID);
 
276
 
 
277
  tp_proxy_prepare_async (manager, NULL, account_manager_prepared_cb, loop);
 
278
 
 
279
  g_main_loop_run (loop);
 
280
 
 
281
  g_object_unref (manager);
 
282
  g_main_loop_unref (loop);
 
283
 
 
284
  return 0;
 
285
}
 
286
</pre></div>
396
287
</div>
397
288
<p><br class="example-break">
398
289
</p>
705
596
before returning from this function. One could ref every item in the list
706
597
like the following example:
707
598
</p>
708
 
<div class="informalexample">
709
 
  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
710
 
    <tbody>
711
 
      <tr>
712
 
        <td class="listing_lines" align="right"><pre>1
713
 
2
714
 
3</pre></td>
715
 
        <td class="listing_code"><pre class="programlisting"><span class="usertype">GList</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">accounts</span><span class="symbol">;</span>
716
 
<span class="normal">account </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="telepathy-glib-account-manager.html#tp-account-manager-get-valid-accounts">tp_account_manager_get_valid_accounts</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">manager</span><span class="symbol">);</span>
717
 
<span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#g-list-foreach">g_list_foreach</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">accounts</span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">(</span><span class="normal"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GFunc">GFunc</a></span><span class="symbol">)</span><span class="normal"> <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-ref">g_object_ref</a></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>
718
 
      </tr>
719
 
    </tbody>
720
 
  </table>
721
 
</div>
722
 
 
 
599
<div class="informalexample"><pre class="programlisting">
 
600
GList *accounts;
 
601
account = tp_account_manager_get_valid_accounts (manager);
 
602
g_list_foreach (accounts, (GFunc) g_object_ref, NULL);
 
603
</pre></div>
723
604
<p>
724
605
</p>
725
606
<p>
753
634
<hr>
754
635
<div class="refsect2">
755
636
<a name="tp-account-manager-get-most-available-presence"></a><h3>tp_account_manager_get_most_available_presence ()</h3>
756
 
<pre class="programlisting"><a class="link" href="telepathy-glib-enums.html#TpConnectionPresenceType" title="enum TpConnectionPresenceType"><span class="returnvalue">TpConnectionPresenceType</span></a> tp_account_manager_get_most_available_presence
 
637
<pre class="programlisting"><a class="link" href="telepathy-glib-enums.html#TpConnectionPresenceType" title="enum TpConnectionPresenceType"><span class="returnvalue">TpConnectionPresenceType</span></a>  tp_account_manager_get_most_available_presence
757
638
                                                        (<em class="parameter"><code><a class="link" href="telepathy-glib-account-manager.html#TpAccountManager"><span class="type">TpAccountManager</span></a> *manager</code></em>,
758
639
                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **status</code></em>,
759
640
                                                         <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **message</code></em>);</pre>
1522
1403
</div>
1523
1404
<div class="footer">
1524
1405
<hr>
1525
 
          Generated by GTK-Doc V1.17.1</div>
 
1406
          Generated by GTK-Doc V1.17</div>
1526
1407
</body>
1527
1408
</html>
 
 
b'\\ No newline at end of file'