annotate libpurple/eventloop.h @ 22933:d464485a2bfc

Clean up the comments about MSNP14, and make the --enable-msnp14 option no longer commented out. This makes it possible, with stock pidgin, to build with msnp14 using --enable-msnp14 - are we ready for this? (my thought being that if we are ready for this we can see what happens when "early adopters" turn it on and maybe, just maybe, making msnp14 default for 2.5.0)
author Stu Tomlinson <stu@nosnilmot.com>
date Wed, 14 May 2008 01:57:45 +0000
parents 3d7e9eff04d0
children dc3c31b78fdb
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
15373
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1 /**
15822
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15694
diff changeset
2 * @file eventloop.h Purple Event Loop API
15373
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3 * @ingroup core
20074
6bf32c9e15a7 remove gpl boilerplate from doxygen docs
Sean Egan <seanegan@gmail.com>
parents: 19681
diff changeset
4 */
6bf32c9e15a7 remove gpl boilerplate from doxygen docs
Sean Egan <seanegan@gmail.com>
parents: 19681
diff changeset
5
6bf32c9e15a7 remove gpl boilerplate from doxygen docs
Sean Egan <seanegan@gmail.com>
parents: 19681
diff changeset
6 /* purple
15373
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7 *
15822
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15694
diff changeset
8 * Purple is the legal property of its developers, whose names are too numerous
15373
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
9 * to list here. Please refer to the COPYRIGHT file distributed with this
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
10 * source distribution.
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
11 *
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
12 * This program is free software; you can redistribute it and/or modify
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
13 * it under the terms of the GNU General Public License as published by
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
14 * the Free Software Foundation; either version 2 of the License, or
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
15 * (at your option) any later version.
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
16 *
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
17 * This program is distributed in the hope that it will be useful,
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
18 * but WITHOUT ANY WARRANTY; without even the implied warranty of
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
20 * GNU General Public License for more details.
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
21 *
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
22 * You should have received a copy of the GNU General Public License
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
23 * along with this program; if not, write to the Free Software
19681
44b4e8bd759b The FSF changed its address a while ago; our files were out of date.
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 18013
diff changeset
24 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
15373
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
25 */
15822
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15694
diff changeset
26 #ifndef _PURPLE_EVENTLOOP_H_
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15694
diff changeset
27 #define _PURPLE_EVENTLOOP_H_
15373
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
28
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
29 #include <glib.h>
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
30
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
31 #ifdef __cplusplus
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
32 extern "C" {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
33 #endif
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
34
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
35 /**
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
36 * An input condition.
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
37 */
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
38 typedef enum
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
39 {
15822
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15694
diff changeset
40 PURPLE_INPUT_READ = 1 << 0, /**< A read condition. */
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15694
diff changeset
41 PURPLE_INPUT_WRITE = 1 << 1 /**< A write condition. */
15373
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
42
15822
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15694
diff changeset
43 } PurpleInputCondition;
15373
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
44
22390
e3bf822c19c8 Document PurpleEventLoopUiOps and associated misc.
Will Thompson <will.thompson@collabora.co.uk>
parents: 20875
diff changeset
45 /** The type of callbacks to handle events on file descriptors, as passed to
e3bf822c19c8 Document PurpleEventLoopUiOps and associated misc.
Will Thompson <will.thompson@collabora.co.uk>
parents: 20875
diff changeset
46 * purple_input_add(). The callback will receive the @c user_data passed to
e3bf822c19c8 Document PurpleEventLoopUiOps and associated misc.
Will Thompson <will.thompson@collabora.co.uk>
parents: 20875
diff changeset
47 * purple_input_add(), the file descriptor on which the event occurred, and the
e3bf822c19c8 Document PurpleEventLoopUiOps and associated misc.
Will Thompson <will.thompson@collabora.co.uk>
parents: 20875
diff changeset
48 * condition that was satisfied to cause the callback to be invoked.
e3bf822c19c8 Document PurpleEventLoopUiOps and associated misc.
Will Thompson <will.thompson@collabora.co.uk>
parents: 20875
diff changeset
49 */
15822
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15694
diff changeset
50 typedef void (*PurpleInputFunction)(gpointer, gint, PurpleInputCondition);
15373
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
51
22390
e3bf822c19c8 Document PurpleEventLoopUiOps and associated misc.
Will Thompson <will.thompson@collabora.co.uk>
parents: 20875
diff changeset
52 /** @copydoc _PurpleEventLoopUiOps */
15822
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15694
diff changeset
53 typedef struct _PurpleEventLoopUiOps PurpleEventLoopUiOps;
15373
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
54
22390
e3bf822c19c8 Document PurpleEventLoopUiOps and associated misc.
Will Thompson <will.thompson@collabora.co.uk>
parents: 20875
diff changeset
55 /** An abstraction of an application's mainloop; libpurple will use this to
e3bf822c19c8 Document PurpleEventLoopUiOps and associated misc.
Will Thompson <will.thompson@collabora.co.uk>
parents: 20875
diff changeset
56 * watch file descriptors and schedule timed callbacks. If your application
e3bf822c19c8 Document PurpleEventLoopUiOps and associated misc.
Will Thompson <will.thompson@collabora.co.uk>
parents: 20875
diff changeset
57 * uses the glib mainloop, there is an implementation of this struct in
e3bf822c19c8 Document PurpleEventLoopUiOps and associated misc.
Will Thompson <will.thompson@collabora.co.uk>
parents: 20875
diff changeset
58 * <tt>libpurple/example/nullclient.c</tt> which you can use verbatim.
e3bf822c19c8 Document PurpleEventLoopUiOps and associated misc.
Will Thompson <will.thompson@collabora.co.uk>
parents: 20875
diff changeset
59 */
15822
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15694
diff changeset
60 struct _PurpleEventLoopUiOps
15373
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
61 {
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
62 /**
22390
e3bf822c19c8 Document PurpleEventLoopUiOps and associated misc.
Will Thompson <will.thompson@collabora.co.uk>
parents: 20875
diff changeset
63 * Should create a callback timer with an interval measured in
e3bf822c19c8 Document PurpleEventLoopUiOps and associated misc.
Will Thompson <will.thompson@collabora.co.uk>
parents: 20875
diff changeset
64 * milliseconds. The supplied @a function should be called every @a
e3bf822c19c8 Document PurpleEventLoopUiOps and associated misc.
Will Thompson <will.thompson@collabora.co.uk>
parents: 20875
diff changeset
65 * interval seconds until it returns @c FALSE, after which it should not
e3bf822c19c8 Document PurpleEventLoopUiOps and associated misc.
Will Thompson <will.thompson@collabora.co.uk>
parents: 20875
diff changeset
66 * be called again.
e3bf822c19c8 Document PurpleEventLoopUiOps and associated misc.
Will Thompson <will.thompson@collabora.co.uk>
parents: 20875
diff changeset
67 *
e3bf822c19c8 Document PurpleEventLoopUiOps and associated misc.
Will Thompson <will.thompson@collabora.co.uk>
parents: 20875
diff changeset
68 * Analogous to g_timeout_add in glib.
e3bf822c19c8 Document PurpleEventLoopUiOps and associated misc.
Will Thompson <will.thompson@collabora.co.uk>
parents: 20875
diff changeset
69 *
e3bf822c19c8 Document PurpleEventLoopUiOps and associated misc.
Will Thompson <will.thompson@collabora.co.uk>
parents: 20875
diff changeset
70 * @param interval the interval in <em>milliseconds</em> between calls
e3bf822c19c8 Document PurpleEventLoopUiOps and associated misc.
Will Thompson <will.thompson@collabora.co.uk>
parents: 20875
diff changeset
71 * to @a function.
e3bf822c19c8 Document PurpleEventLoopUiOps and associated misc.
Will Thompson <will.thompson@collabora.co.uk>
parents: 20875
diff changeset
72 * @param data arbitrary data to be passed to @a function at each
e3bf822c19c8 Document PurpleEventLoopUiOps and associated misc.
Will Thompson <will.thompson@collabora.co.uk>
parents: 20875
diff changeset
73 * call.
e3bf822c19c8 Document PurpleEventLoopUiOps and associated misc.
Will Thompson <will.thompson@collabora.co.uk>
parents: 20875
diff changeset
74 * @todo Who is responsible for freeing @a data?
e3bf822c19c8 Document PurpleEventLoopUiOps and associated misc.
Will Thompson <will.thompson@collabora.co.uk>
parents: 20875
diff changeset
75 *
e3bf822c19c8 Document PurpleEventLoopUiOps and associated misc.
Will Thompson <will.thompson@collabora.co.uk>
parents: 20875
diff changeset
76 * @return a handle for the timeout, which can be passed to
e3bf822c19c8 Document PurpleEventLoopUiOps and associated misc.
Will Thompson <will.thompson@collabora.co.uk>
parents: 20875
diff changeset
77 * #timeout_remove.
e3bf822c19c8 Document PurpleEventLoopUiOps and associated misc.
Will Thompson <will.thompson@collabora.co.uk>
parents: 20875
diff changeset
78 *
e3bf822c19c8 Document PurpleEventLoopUiOps and associated misc.
Will Thompson <will.thompson@collabora.co.uk>
parents: 20875
diff changeset
79 * @see purple_timeout_add
15373
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
80 **/
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
81 guint (*timeout_add)(guint interval, GSourceFunc function, gpointer data);
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
82
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
83 /**
22390
e3bf822c19c8 Document PurpleEventLoopUiOps and associated misc.
Will Thompson <will.thompson@collabora.co.uk>
parents: 20875
diff changeset
84 * Should remove a callback timer. Analogous to g_source_remove in glib.
e3bf822c19c8 Document PurpleEventLoopUiOps and associated misc.
Will Thompson <will.thompson@collabora.co.uk>
parents: 20875
diff changeset
85 * @param handle an identifier for a timeout, as returned by
e3bf822c19c8 Document PurpleEventLoopUiOps and associated misc.
Will Thompson <will.thompson@collabora.co.uk>
parents: 20875
diff changeset
86 * #timeout_add.
e3bf822c19c8 Document PurpleEventLoopUiOps and associated misc.
Will Thompson <will.thompson@collabora.co.uk>
parents: 20875
diff changeset
87 * @return @c TRUE if the timeout identified by @a handle was
e3bf822c19c8 Document PurpleEventLoopUiOps and associated misc.
Will Thompson <will.thompson@collabora.co.uk>
parents: 20875
diff changeset
88 * found and removed.
e3bf822c19c8 Document PurpleEventLoopUiOps and associated misc.
Will Thompson <will.thompson@collabora.co.uk>
parents: 20875
diff changeset
89 * @see purple_timeout_remove
15373
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
90 */
15667
d44fca5248a1 Change out source_remove and input_remove eventloop functions to return
Mark Doliner <mark@kingant.net>
parents: 15373
diff changeset
91 gboolean (*timeout_remove)(guint handle);
15373
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
92
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
93 /**
22390
e3bf822c19c8 Document PurpleEventLoopUiOps and associated misc.
Will Thompson <will.thompson@collabora.co.uk>
parents: 20875
diff changeset
94 * Should add an input handler. Analogous to g_io_add_watch_full in
e3bf822c19c8 Document PurpleEventLoopUiOps and associated misc.
Will Thompson <will.thompson@collabora.co.uk>
parents: 20875
diff changeset
95 * glib.
e3bf822c19c8 Document PurpleEventLoopUiOps and associated misc.
Will Thompson <will.thompson@collabora.co.uk>
parents: 20875
diff changeset
96 *
e3bf822c19c8 Document PurpleEventLoopUiOps and associated misc.
Will Thompson <will.thompson@collabora.co.uk>
parents: 20875
diff changeset
97 * @param fd a file descriptor to watch for events
e3bf822c19c8 Document PurpleEventLoopUiOps and associated misc.
Will Thompson <will.thompson@collabora.co.uk>
parents: 20875
diff changeset
98 * @param cond a bitwise OR of events on @a fd for which @a func
e3bf822c19c8 Document PurpleEventLoopUiOps and associated misc.
Will Thompson <will.thompson@collabora.co.uk>
parents: 20875
diff changeset
99 * should be called.
e3bf822c19c8 Document PurpleEventLoopUiOps and associated misc.
Will Thompson <will.thompson@collabora.co.uk>
parents: 20875
diff changeset
100 * @param func a callback to fire whenever a relevant event on @a
e3bf822c19c8 Document PurpleEventLoopUiOps and associated misc.
Will Thompson <will.thompson@collabora.co.uk>
parents: 20875
diff changeset
101 * fd occurs.
e3bf822c19c8 Document PurpleEventLoopUiOps and associated misc.
Will Thompson <will.thompson@collabora.co.uk>
parents: 20875
diff changeset
102 * @param user_data arbitrary data to pass to @a fd.
e3bf822c19c8 Document PurpleEventLoopUiOps and associated misc.
Will Thompson <will.thompson@collabora.co.uk>
parents: 20875
diff changeset
103 * @return an identifier for this input handler, which can be
e3bf822c19c8 Document PurpleEventLoopUiOps and associated misc.
Will Thompson <will.thompson@collabora.co.uk>
parents: 20875
diff changeset
104 * passed to #input_remove.
e3bf822c19c8 Document PurpleEventLoopUiOps and associated misc.
Will Thompson <will.thompson@collabora.co.uk>
parents: 20875
diff changeset
105 *
e3bf822c19c8 Document PurpleEventLoopUiOps and associated misc.
Will Thompson <will.thompson@collabora.co.uk>
parents: 20875
diff changeset
106 * @see purple_input_add
15373
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
107 */
15822
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15694
diff changeset
108 guint (*input_add)(int fd, PurpleInputCondition cond,
22390
e3bf822c19c8 Document PurpleEventLoopUiOps and associated misc.
Will Thompson <will.thompson@collabora.co.uk>
parents: 20875
diff changeset
109 PurpleInputFunction func, gpointer user_data);
15373
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
110
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
111 /**
22390
e3bf822c19c8 Document PurpleEventLoopUiOps and associated misc.
Will Thompson <will.thompson@collabora.co.uk>
parents: 20875
diff changeset
112 * Should remove an input handler. Analogous to g_source_remove in glib.
e3bf822c19c8 Document PurpleEventLoopUiOps and associated misc.
Will Thompson <will.thompson@collabora.co.uk>
parents: 20875
diff changeset
113 * @param handle an identifier, as returned by #input_add.
e3bf822c19c8 Document PurpleEventLoopUiOps and associated misc.
Will Thompson <will.thompson@collabora.co.uk>
parents: 20875
diff changeset
114 * @return @c TRUE if the input handler was found and removed.
e3bf822c19c8 Document PurpleEventLoopUiOps and associated misc.
Will Thompson <will.thompson@collabora.co.uk>
parents: 20875
diff changeset
115 * @see purple_input_remove
15373
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
116 */
15667
d44fca5248a1 Change out source_remove and input_remove eventloop functions to return
Mark Doliner <mark@kingant.net>
parents: 15373
diff changeset
117 gboolean (*input_remove)(guint handle);
15681
14d85ee22d78 Added a new GaimEventLoopUiOps item, input_get_error(). This function allows the UI to return the current error status on a socket/input. If the UI does not implement it (as Pidgin and gntgaim do not, since glib's handling of sockets is sane), it is just a wrapper around getsockopt(). Implemented or not, its return values should match those of getsockopt() with a level of SOL_SOCKET and an option of SO_ERROR. For curious souls, Adium will be using this to provide a working version of getsockopt(); the CoreFoundation CFSocket class which is used for socket read/write calls getsockopt() with SO_ERROR itself, thereby clearing the error flag [as documented in getsockopt()'s behavior], so depending upon it for determining if an error occurred leads to significant misbehavior.
Evan Schoenberg <evan.s@dreskin.net>
parents: 15667
diff changeset
118
14d85ee22d78 Added a new GaimEventLoopUiOps item, input_get_error(). This function allows the UI to return the current error status on a socket/input. If the UI does not implement it (as Pidgin and gntgaim do not, since glib's handling of sockets is sane), it is just a wrapper around getsockopt(). Implemented or not, its return values should match those of getsockopt() with a level of SOL_SOCKET and an option of SO_ERROR. For curious souls, Adium will be using this to provide a working version of getsockopt(); the CoreFoundation CFSocket class which is used for socket read/write calls getsockopt() with SO_ERROR itself, thereby clearing the error flag [as documented in getsockopt()'s behavior], so depending upon it for determining if an error occurred leads to significant misbehavior.
Evan Schoenberg <evan.s@dreskin.net>
parents: 15667
diff changeset
119
14d85ee22d78 Added a new GaimEventLoopUiOps item, input_get_error(). This function allows the UI to return the current error status on a socket/input. If the UI does not implement it (as Pidgin and gntgaim do not, since glib's handling of sockets is sane), it is just a wrapper around getsockopt(). Implemented or not, its return values should match those of getsockopt() with a level of SOL_SOCKET and an option of SO_ERROR. For curious souls, Adium will be using this to provide a working version of getsockopt(); the CoreFoundation CFSocket class which is used for socket read/write calls getsockopt() with SO_ERROR itself, thereby clearing the error flag [as documented in getsockopt()'s behavior], so depending upon it for determining if an error occurred leads to significant misbehavior.
Evan Schoenberg <evan.s@dreskin.net>
parents: 15667
diff changeset
120 /**
22390
e3bf822c19c8 Document PurpleEventLoopUiOps and associated misc.
Will Thompson <will.thompson@collabora.co.uk>
parents: 20875
diff changeset
121 * If implemented, should get the current error status for an input.
e3bf822c19c8 Document PurpleEventLoopUiOps and associated misc.
Will Thompson <will.thompson@collabora.co.uk>
parents: 20875
diff changeset
122 *
e3bf822c19c8 Document PurpleEventLoopUiOps and associated misc.
Will Thompson <will.thompson@collabora.co.uk>
parents: 20875
diff changeset
123 * Implementation of this UI op is optional. Implement it if the UI's
e3bf822c19c8 Document PurpleEventLoopUiOps and associated misc.
Will Thompson <will.thompson@collabora.co.uk>
parents: 20875
diff changeset
124 * sockets or event loop needs to customize determination of socket
e3bf822c19c8 Document PurpleEventLoopUiOps and associated misc.
Will Thompson <will.thompson@collabora.co.uk>
parents: 20875
diff changeset
125 * error status. If unimplemented, <tt>getsockopt(2)</tt> will be used
e3bf822c19c8 Document PurpleEventLoopUiOps and associated misc.
Will Thompson <will.thompson@collabora.co.uk>
parents: 20875
diff changeset
126 * instead.
e3bf822c19c8 Document PurpleEventLoopUiOps and associated misc.
Will Thompson <will.thompson@collabora.co.uk>
parents: 20875
diff changeset
127 *
e3bf822c19c8 Document PurpleEventLoopUiOps and associated misc.
Will Thompson <will.thompson@collabora.co.uk>
parents: 20875
diff changeset
128 * @see purple_input_get_error
15681
14d85ee22d78 Added a new GaimEventLoopUiOps item, input_get_error(). This function allows the UI to return the current error status on a socket/input. If the UI does not implement it (as Pidgin and gntgaim do not, since glib's handling of sockets is sane), it is just a wrapper around getsockopt(). Implemented or not, its return values should match those of getsockopt() with a level of SOL_SOCKET and an option of SO_ERROR. For curious souls, Adium will be using this to provide a working version of getsockopt(); the CoreFoundation CFSocket class which is used for socket read/write calls getsockopt() with SO_ERROR itself, thereby clearing the error flag [as documented in getsockopt()'s behavior], so depending upon it for determining if an error occurred leads to significant misbehavior.
Evan Schoenberg <evan.s@dreskin.net>
parents: 15667
diff changeset
129 */
14d85ee22d78 Added a new GaimEventLoopUiOps item, input_get_error(). This function allows the UI to return the current error status on a socket/input. If the UI does not implement it (as Pidgin and gntgaim do not, since glib's handling of sockets is sane), it is just a wrapper around getsockopt(). Implemented or not, its return values should match those of getsockopt() with a level of SOL_SOCKET and an option of SO_ERROR. For curious souls, Adium will be using this to provide a working version of getsockopt(); the CoreFoundation CFSocket class which is used for socket read/write calls getsockopt() with SO_ERROR itself, thereby clearing the error flag [as documented in getsockopt()'s behavior], so depending upon it for determining if an error occurred leads to significant misbehavior.
Evan Schoenberg <evan.s@dreskin.net>
parents: 15667
diff changeset
130 int (*input_get_error)(int fd, int *error);
14d85ee22d78 Added a new GaimEventLoopUiOps item, input_get_error(). This function allows the UI to return the current error status on a socket/input. If the UI does not implement it (as Pidgin and gntgaim do not, since glib's handling of sockets is sane), it is just a wrapper around getsockopt(). Implemented or not, its return values should match those of getsockopt() with a level of SOL_SOCKET and an option of SO_ERROR. For curious souls, Adium will be using this to provide a working version of getsockopt(); the CoreFoundation CFSocket class which is used for socket read/write calls getsockopt() with SO_ERROR itself, thereby clearing the error flag [as documented in getsockopt()'s behavior], so depending upon it for determining if an error occurred leads to significant misbehavior.
Evan Schoenberg <evan.s@dreskin.net>
parents: 15667
diff changeset
131
18008
f22986db6e70 Wire everything up and document it.
Richard Laager <rlaager@wiktel.com>
parents: 18006
diff changeset
132 /**
22390
e3bf822c19c8 Document PurpleEventLoopUiOps and associated misc.
Will Thompson <will.thompson@collabora.co.uk>
parents: 20875
diff changeset
133 * If implemented, should create a callback timer with an interval
e3bf822c19c8 Document PurpleEventLoopUiOps and associated misc.
Will Thompson <will.thompson@collabora.co.uk>
parents: 20875
diff changeset
134 * measured in seconds. Analogous to g_timeout_add_seconds in glib.
18008
f22986db6e70 Wire everything up and document it.
Richard Laager <rlaager@wiktel.com>
parents: 18006
diff changeset
135 *
f22986db6e70 Wire everything up and document it.
Richard Laager <rlaager@wiktel.com>
parents: 18006
diff changeset
136 * This allows UIs to group timers for better power efficiency. For
f22986db6e70 Wire everything up and document it.
Richard Laager <rlaager@wiktel.com>
parents: 18006
diff changeset
137 * this reason, @a interval may be rounded by up to a second.
f22986db6e70 Wire everything up and document it.
Richard Laager <rlaager@wiktel.com>
parents: 18006
diff changeset
138 *
f22986db6e70 Wire everything up and document it.
Richard Laager <rlaager@wiktel.com>
parents: 18006
diff changeset
139 * Implementation of this UI op is optional. If it's not implemented,
22390
e3bf822c19c8 Document PurpleEventLoopUiOps and associated misc.
Will Thompson <will.thompson@collabora.co.uk>
parents: 20875
diff changeset
140 * calls to purple_timeout_add_seconds() will be serviced by
e3bf822c19c8 Document PurpleEventLoopUiOps and associated misc.
Will Thompson <will.thompson@collabora.co.uk>
parents: 20875
diff changeset
141 * #timeout_add.
18008
f22986db6e70 Wire everything up and document it.
Richard Laager <rlaager@wiktel.com>
parents: 18006
diff changeset
142 *
22390
e3bf822c19c8 Document PurpleEventLoopUiOps and associated misc.
Will Thompson <will.thompson@collabora.co.uk>
parents: 20875
diff changeset
143 * @see purple_timeout_add_seconds()
22898
3d7e9eff04d0 Assorted cleanups, mostly to the Doxygen comments. I added a few missing
Richard Laager <rlaager@wiktel.com>
parents: 22390
diff changeset
144 * @since 2.1.0
18008
f22986db6e70 Wire everything up and document it.
Richard Laager <rlaager@wiktel.com>
parents: 18006
diff changeset
145 **/
22390
e3bf822c19c8 Document PurpleEventLoopUiOps and associated misc.
Will Thompson <will.thompson@collabora.co.uk>
parents: 20875
diff changeset
146 guint (*timeout_add_seconds)(guint interval, GSourceFunc function,
e3bf822c19c8 Document PurpleEventLoopUiOps and associated misc.
Will Thompson <will.thompson@collabora.co.uk>
parents: 20875
diff changeset
147 gpointer data);
18008
f22986db6e70 Wire everything up and document it.
Richard Laager <rlaager@wiktel.com>
parents: 18006
diff changeset
148
16664
516f14bef90e Initial addition of padding for ui_ops and other class-like structs
Gary Kramlich <grim@reaperworld.com>
parents: 15933
diff changeset
149 void (*_purple_reserved2)(void);
516f14bef90e Initial addition of padding for ui_ops and other class-like structs
Gary Kramlich <grim@reaperworld.com>
parents: 15933
diff changeset
150 void (*_purple_reserved3)(void);
516f14bef90e Initial addition of padding for ui_ops and other class-like structs
Gary Kramlich <grim@reaperworld.com>
parents: 15933
diff changeset
151 void (*_purple_reserved4)(void);
15373
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
152 };
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
153
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
154 /**************************************************************************/
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
155 /** @name Event Loop API */
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
156 /**************************************************************************/
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
157 /*@{*/
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
158 /**
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
159 * Creates a callback timer.
18008
f22986db6e70 Wire everything up and document it.
Richard Laager <rlaager@wiktel.com>
parents: 18006
diff changeset
160 *
15373
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
161 * The timer will repeat until the function returns @c FALSE. The
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
162 * first call will be at the end of the first interval.
18008
f22986db6e70 Wire everything up and document it.
Richard Laager <rlaager@wiktel.com>
parents: 18006
diff changeset
163 *
f22986db6e70 Wire everything up and document it.
Richard Laager <rlaager@wiktel.com>
parents: 18006
diff changeset
164 * If the timer is in a multiple of seconds, use purple_timeout_add_seconds()
f22986db6e70 Wire everything up and document it.
Richard Laager <rlaager@wiktel.com>
parents: 18006
diff changeset
165 * instead as it allows UIs to group timers for power efficiency.
f22986db6e70 Wire everything up and document it.
Richard Laager <rlaager@wiktel.com>
parents: 18006
diff changeset
166 *
15373
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
167 * @param interval The time between calls of the function, in
18008
f22986db6e70 Wire everything up and document it.
Richard Laager <rlaager@wiktel.com>
parents: 18006
diff changeset
168 * milliseconds.
f22986db6e70 Wire everything up and document it.
Richard Laager <rlaager@wiktel.com>
parents: 18006
diff changeset
169 * @param function The function to call.
f22986db6e70 Wire everything up and document it.
Richard Laager <rlaager@wiktel.com>
parents: 18006
diff changeset
170 * @param data data to pass to @a function.
22390
e3bf822c19c8 Document PurpleEventLoopUiOps and associated misc.
Will Thompson <will.thompson@collabora.co.uk>
parents: 20875
diff changeset
171 * @return A handle to the timer which can be passed to
e3bf822c19c8 Document PurpleEventLoopUiOps and associated misc.
Will Thompson <will.thompson@collabora.co.uk>
parents: 20875
diff changeset
172 * purple_timeout_remove() to remove the timer.
18008
f22986db6e70 Wire everything up and document it.
Richard Laager <rlaager@wiktel.com>
parents: 18006
diff changeset
173 */
f22986db6e70 Wire everything up and document it.
Richard Laager <rlaager@wiktel.com>
parents: 18006
diff changeset
174 guint purple_timeout_add(guint interval, GSourceFunc function, gpointer data);
f22986db6e70 Wire everything up and document it.
Richard Laager <rlaager@wiktel.com>
parents: 18006
diff changeset
175
f22986db6e70 Wire everything up and document it.
Richard Laager <rlaager@wiktel.com>
parents: 18006
diff changeset
176 /**
f22986db6e70 Wire everything up and document it.
Richard Laager <rlaager@wiktel.com>
parents: 18006
diff changeset
177 * Creates a callback timer.
f22986db6e70 Wire everything up and document it.
Richard Laager <rlaager@wiktel.com>
parents: 18006
diff changeset
178 *
f22986db6e70 Wire everything up and document it.
Richard Laager <rlaager@wiktel.com>
parents: 18006
diff changeset
179 * The timer will repeat until the function returns @c FALSE. The
f22986db6e70 Wire everything up and document it.
Richard Laager <rlaager@wiktel.com>
parents: 18006
diff changeset
180 * first call will be at the end of the first interval.
f22986db6e70 Wire everything up and document it.
Richard Laager <rlaager@wiktel.com>
parents: 18006
diff changeset
181 *
f22986db6e70 Wire everything up and document it.
Richard Laager <rlaager@wiktel.com>
parents: 18006
diff changeset
182 * This function allows UIs to group timers for better power efficiency. For
f22986db6e70 Wire everything up and document it.
Richard Laager <rlaager@wiktel.com>
parents: 18006
diff changeset
183 * this reason, @a interval may be rounded by up to a second.
f22986db6e70 Wire everything up and document it.
Richard Laager <rlaager@wiktel.com>
parents: 18006
diff changeset
184 *
f22986db6e70 Wire everything up and document it.
Richard Laager <rlaager@wiktel.com>
parents: 18006
diff changeset
185 * @param interval The time between calls of the function, in
f22986db6e70 Wire everything up and document it.
Richard Laager <rlaager@wiktel.com>
parents: 18006
diff changeset
186 * seconds.
15373
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
187 * @param function The function to call.
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
188 * @param data data to pass to @a function.
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
189 * @return A handle to the timer which can be passed to
22390
e3bf822c19c8 Document PurpleEventLoopUiOps and associated misc.
Will Thompson <will.thompson@collabora.co.uk>
parents: 20875
diff changeset
190 * purple_timeout_remove() to remove the timer.
20875
4511d15a8f80 Doxygen @since tags for libpurple and pidgin.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 20074
diff changeset
191 *
4511d15a8f80 Doxygen @since tags for libpurple and pidgin.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 20074
diff changeset
192 * @since 2.1.0
15373
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
193 */
18013
58e82c3b697e It's GLIB_CHECK_VERSION, not GLIB_VERSION_CHECK.
Richard Laager <rlaager@wiktel.com>
parents: 18008
diff changeset
194 guint purple_timeout_add_seconds(guint interval, GSourceFunc function, gpointer data);
15373
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
195
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
196 /**
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
197 * Removes a timeout handler.
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
198 *
22390
e3bf822c19c8 Document PurpleEventLoopUiOps and associated misc.
Will Thompson <will.thompson@collabora.co.uk>
parents: 20875
diff changeset
199 * @param handle The handle, as returned by purple_timeout_add().
15373
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
200 *
22390
e3bf822c19c8 Document PurpleEventLoopUiOps and associated misc.
Will Thompson <will.thompson@collabora.co.uk>
parents: 20875
diff changeset
201 * @return @c TRUE if the handler was successfully removed.
15373
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
202 */
15822
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15694
diff changeset
203 gboolean purple_timeout_remove(guint handle);
15373
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
204
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
205 /**
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
206 * Adds an input handler.
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
207 *
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
208 * @param fd The input file descriptor.
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
209 * @param cond The condition type.
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
210 * @param func The callback function for data.
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
211 * @param user_data User-specified data.
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
212 *
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
213 * @return The resulting handle (will be greater than 0).
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
214 * @see g_io_add_watch_full
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
215 */
15822
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15694
diff changeset
216 guint purple_input_add(int fd, PurpleInputCondition cond,
22390
e3bf822c19c8 Document PurpleEventLoopUiOps and associated misc.
Will Thompson <will.thompson@collabora.co.uk>
parents: 20875
diff changeset
217 PurpleInputFunction func, gpointer user_data);
15373
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
218
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
219 /**
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
220 * Removes an input handler.
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
221 *
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
222 * @param handle The handle of the input handler. Note that this is the return
22390
e3bf822c19c8 Document PurpleEventLoopUiOps and associated misc.
Will Thompson <will.thompson@collabora.co.uk>
parents: 20875
diff changeset
223 * value from purple_input_add(), <i>not</i> the file descriptor.
15373
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
224 */
15822
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15694
diff changeset
225 gboolean purple_input_remove(guint handle);
15681
14d85ee22d78 Added a new GaimEventLoopUiOps item, input_get_error(). This function allows the UI to return the current error status on a socket/input. If the UI does not implement it (as Pidgin and gntgaim do not, since glib's handling of sockets is sane), it is just a wrapper around getsockopt(). Implemented or not, its return values should match those of getsockopt() with a level of SOL_SOCKET and an option of SO_ERROR. For curious souls, Adium will be using this to provide a working version of getsockopt(); the CoreFoundation CFSocket class which is used for socket read/write calls getsockopt() with SO_ERROR itself, thereby clearing the error flag [as documented in getsockopt()'s behavior], so depending upon it for determining if an error occurred leads to significant misbehavior.
Evan Schoenberg <evan.s@dreskin.net>
parents: 15667
diff changeset
226
14d85ee22d78 Added a new GaimEventLoopUiOps item, input_get_error(). This function allows the UI to return the current error status on a socket/input. If the UI does not implement it (as Pidgin and gntgaim do not, since glib's handling of sockets is sane), it is just a wrapper around getsockopt(). Implemented or not, its return values should match those of getsockopt() with a level of SOL_SOCKET and an option of SO_ERROR. For curious souls, Adium will be using this to provide a working version of getsockopt(); the CoreFoundation CFSocket class which is used for socket read/write calls getsockopt() with SO_ERROR itself, thereby clearing the error flag [as documented in getsockopt()'s behavior], so depending upon it for determining if an error occurred leads to significant misbehavior.
Evan Schoenberg <evan.s@dreskin.net>
parents: 15667
diff changeset
227 /**
14d85ee22d78 Added a new GaimEventLoopUiOps item, input_get_error(). This function allows the UI to return the current error status on a socket/input. If the UI does not implement it (as Pidgin and gntgaim do not, since glib's handling of sockets is sane), it is just a wrapper around getsockopt(). Implemented or not, its return values should match those of getsockopt() with a level of SOL_SOCKET and an option of SO_ERROR. For curious souls, Adium will be using this to provide a working version of getsockopt(); the CoreFoundation CFSocket class which is used for socket read/write calls getsockopt() with SO_ERROR itself, thereby clearing the error flag [as documented in getsockopt()'s behavior], so depending upon it for determining if an error occurred leads to significant misbehavior.
Evan Schoenberg <evan.s@dreskin.net>
parents: 15667
diff changeset
228 * Get the current error status for an input.
22390
e3bf822c19c8 Document PurpleEventLoopUiOps and associated misc.
Will Thompson <will.thompson@collabora.co.uk>
parents: 20875
diff changeset
229 *
15681
14d85ee22d78 Added a new GaimEventLoopUiOps item, input_get_error(). This function allows the UI to return the current error status on a socket/input. If the UI does not implement it (as Pidgin and gntgaim do not, since glib's handling of sockets is sane), it is just a wrapper around getsockopt(). Implemented or not, its return values should match those of getsockopt() with a level of SOL_SOCKET and an option of SO_ERROR. For curious souls, Adium will be using this to provide a working version of getsockopt(); the CoreFoundation CFSocket class which is used for socket read/write calls getsockopt() with SO_ERROR itself, thereby clearing the error flag [as documented in getsockopt()'s behavior], so depending upon it for determining if an error occurred leads to significant misbehavior.
Evan Schoenberg <evan.s@dreskin.net>
parents: 15667
diff changeset
230 * The return value and error follow getsockopt() with a level of SOL_SOCKET and an
14d85ee22d78 Added a new GaimEventLoopUiOps item, input_get_error(). This function allows the UI to return the current error status on a socket/input. If the UI does not implement it (as Pidgin and gntgaim do not, since glib's handling of sockets is sane), it is just a wrapper around getsockopt(). Implemented or not, its return values should match those of getsockopt() with a level of SOL_SOCKET and an option of SO_ERROR. For curious souls, Adium will be using this to provide a working version of getsockopt(); the CoreFoundation CFSocket class which is used for socket read/write calls getsockopt() with SO_ERROR itself, thereby clearing the error flag [as documented in getsockopt()'s behavior], so depending upon it for determining if an error occurred leads to significant misbehavior.
Evan Schoenberg <evan.s@dreskin.net>
parents: 15667
diff changeset
231 * option name of SO_ERROR, and this is how the error is determined if the UI does not
14d85ee22d78 Added a new GaimEventLoopUiOps item, input_get_error(). This function allows the UI to return the current error status on a socket/input. If the UI does not implement it (as Pidgin and gntgaim do not, since glib's handling of sockets is sane), it is just a wrapper around getsockopt(). Implemented or not, its return values should match those of getsockopt() with a level of SOL_SOCKET and an option of SO_ERROR. For curious souls, Adium will be using this to provide a working version of getsockopt(); the CoreFoundation CFSocket class which is used for socket read/write calls getsockopt() with SO_ERROR itself, thereby clearing the error flag [as documented in getsockopt()'s behavior], so depending upon it for determining if an error occurred leads to significant misbehavior.
Evan Schoenberg <evan.s@dreskin.net>
parents: 15667
diff changeset
232 * implement the input_get_error UI op.
14d85ee22d78 Added a new GaimEventLoopUiOps item, input_get_error(). This function allows the UI to return the current error status on a socket/input. If the UI does not implement it (as Pidgin and gntgaim do not, since glib's handling of sockets is sane), it is just a wrapper around getsockopt(). Implemented or not, its return values should match those of getsockopt() with a level of SOL_SOCKET and an option of SO_ERROR. For curious souls, Adium will be using this to provide a working version of getsockopt(); the CoreFoundation CFSocket class which is used for socket read/write calls getsockopt() with SO_ERROR itself, thereby clearing the error flag [as documented in getsockopt()'s behavior], so depending upon it for determining if an error occurred leads to significant misbehavior.
Evan Schoenberg <evan.s@dreskin.net>
parents: 15667
diff changeset
233 *
14d85ee22d78 Added a new GaimEventLoopUiOps item, input_get_error(). This function allows the UI to return the current error status on a socket/input. If the UI does not implement it (as Pidgin and gntgaim do not, since glib's handling of sockets is sane), it is just a wrapper around getsockopt(). Implemented or not, its return values should match those of getsockopt() with a level of SOL_SOCKET and an option of SO_ERROR. For curious souls, Adium will be using this to provide a working version of getsockopt(); the CoreFoundation CFSocket class which is used for socket read/write calls getsockopt() with SO_ERROR itself, thereby clearing the error flag [as documented in getsockopt()'s behavior], so depending upon it for determining if an error occurred leads to significant misbehavior.
Evan Schoenberg <evan.s@dreskin.net>
parents: 15667
diff changeset
234 * @param fd The input file descriptor.
22390
e3bf822c19c8 Document PurpleEventLoopUiOps and associated misc.
Will Thompson <will.thompson@collabora.co.uk>
parents: 20875
diff changeset
235 * @param error A pointer to an @c int which on return will have the error, or
e3bf822c19c8 Document PurpleEventLoopUiOps and associated misc.
Will Thompson <will.thompson@collabora.co.uk>
parents: 20875
diff changeset
236 * @c 0 if no error.
15681
14d85ee22d78 Added a new GaimEventLoopUiOps item, input_get_error(). This function allows the UI to return the current error status on a socket/input. If the UI does not implement it (as Pidgin and gntgaim do not, since glib's handling of sockets is sane), it is just a wrapper around getsockopt(). Implemented or not, its return values should match those of getsockopt() with a level of SOL_SOCKET and an option of SO_ERROR. For curious souls, Adium will be using this to provide a working version of getsockopt(); the CoreFoundation CFSocket class which is used for socket read/write calls getsockopt() with SO_ERROR itself, thereby clearing the error flag [as documented in getsockopt()'s behavior], so depending upon it for determining if an error occurred leads to significant misbehavior.
Evan Schoenberg <evan.s@dreskin.net>
parents: 15667
diff changeset
237 *
22390
e3bf822c19c8 Document PurpleEventLoopUiOps and associated misc.
Will Thompson <will.thompson@collabora.co.uk>
parents: 20875
diff changeset
238 * @return @c 0 if there is no error; @c -1 if there is an error, in which case
e3bf822c19c8 Document PurpleEventLoopUiOps and associated misc.
Will Thompson <will.thompson@collabora.co.uk>
parents: 20875
diff changeset
239 * @a errno will be set.
15681
14d85ee22d78 Added a new GaimEventLoopUiOps item, input_get_error(). This function allows the UI to return the current error status on a socket/input. If the UI does not implement it (as Pidgin and gntgaim do not, since glib's handling of sockets is sane), it is just a wrapper around getsockopt(). Implemented or not, its return values should match those of getsockopt() with a level of SOL_SOCKET and an option of SO_ERROR. For curious souls, Adium will be using this to provide a working version of getsockopt(); the CoreFoundation CFSocket class which is used for socket read/write calls getsockopt() with SO_ERROR itself, thereby clearing the error flag [as documented in getsockopt()'s behavior], so depending upon it for determining if an error occurred leads to significant misbehavior.
Evan Schoenberg <evan.s@dreskin.net>
parents: 15667
diff changeset
240 */
14d85ee22d78 Added a new GaimEventLoopUiOps item, input_get_error(). This function allows the UI to return the current error status on a socket/input. If the UI does not implement it (as Pidgin and gntgaim do not, since glib's handling of sockets is sane), it is just a wrapper around getsockopt(). Implemented or not, its return values should match those of getsockopt() with a level of SOL_SOCKET and an option of SO_ERROR. For curious souls, Adium will be using this to provide a working version of getsockopt(); the CoreFoundation CFSocket class which is used for socket read/write calls getsockopt() with SO_ERROR itself, thereby clearing the error flag [as documented in getsockopt()'s behavior], so depending upon it for determining if an error occurred leads to significant misbehavior.
Evan Schoenberg <evan.s@dreskin.net>
parents: 15667
diff changeset
241 int
15822
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15694
diff changeset
242 purple_input_get_error(int fd, int *error);
15681
14d85ee22d78 Added a new GaimEventLoopUiOps item, input_get_error(). This function allows the UI to return the current error status on a socket/input. If the UI does not implement it (as Pidgin and gntgaim do not, since glib's handling of sockets is sane), it is just a wrapper around getsockopt(). Implemented or not, its return values should match those of getsockopt() with a level of SOL_SOCKET and an option of SO_ERROR. For curious souls, Adium will be using this to provide a working version of getsockopt(); the CoreFoundation CFSocket class which is used for socket read/write calls getsockopt() with SO_ERROR itself, thereby clearing the error flag [as documented in getsockopt()'s behavior], so depending upon it for determining if an error occurred leads to significant misbehavior.
Evan Schoenberg <evan.s@dreskin.net>
parents: 15667
diff changeset
243
15373
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
244
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
245 /*@}*/
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
246
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
247
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
248 /**************************************************************************/
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
249 /** @name UI Registration Functions */
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
250 /**************************************************************************/
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
251 /*@{*/
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
252 /**
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
253 * Sets the UI operations structure to be used for accounts.
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
254 *
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
255 * @param ops The UI operations structure.
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
256 */
15822
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15694
diff changeset
257 void purple_eventloop_set_ui_ops(PurpleEventLoopUiOps *ops);
15373
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
258
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
259 /**
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
260 * Returns the UI operations structure used for accounts.
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
261 *
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
262 * @return The UI operations structure in use.
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
263 */
15822
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15694
diff changeset
264 PurpleEventLoopUiOps *purple_eventloop_get_ui_ops(void);
15373
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
265
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
266 /*@}*/
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
267
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
268 #ifdef __cplusplus
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
269 }
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
270 #endif
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
271
15822
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15694
diff changeset
272 #endif /* _PURPLE_EVENTLOOP_H_ */