libpurple/purple-client-example.c

changeset 16238
33bf2fd32108
parent 11903
56ae8af14a0d
parent 15987
71d668c3d56d
equal deleted inserted replaced
13071:b98e72d4089a 16238:33bf2fd32108
1 #define DBUS_API_SUBJECT_TO_CHANGE
2
3 #include <stdio.h>
4 #include <stdlib.h>
5
6 #include "purple-client.h"
7
8 /*
9 This example demonstrates how to use libpurple-client to communicate
10 with purple. The names and signatures of functions provided by
11 libpurple-client are the same as those in purple. However, all
12 structures (such as PurpleAccount) are opaque, that is, you can only
13 use pointer to them. In fact, these pointers DO NOT actually point
14 to anything, they are just integer identifiers of assigned to these
15 structures by purple. So NEVER try to dereference these pointers.
16 Integer ids as disguised as pointers to provide type checking and
17 prevent mistakes such as passing an id of PurpleAccount when an id of
18 PurpleBuddy is expected. According to glib manual, this technique is
19 portable.
20 */
21
22 int main (int argc, char **argv)
23 {
24 GList *alist, *node;
25
26 purple_init();
27
28 alist = purple_accounts_get_all();
29 for (node = alist; node != NULL; node = node->next)
30 {
31 PurpleAccount *account = (PurpleAccount*) node->data;
32 char *name = purple_account_get_username(account);
33 g_print("Name: %s\n", name);
34 g_free(name);
35 }
36 g_list_free(alist);
37
38 return 0;
39 }

mercurial