Mercurial > pidgin
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 |
rev | line source |
---|---|
15373
5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff
changeset
|
1 /** |
15822 | 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 | 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 | 26 #ifndef _PURPLE_EVENTLOOP_H_ |
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 | 40 PURPLE_INPUT_READ = 1 << 0, /**< A read condition. */ |
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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 272 #endif /* _PURPLE_EVENTLOOP_H_ */ |