Tue, 04 Feb 2014 01:33:58 +0530
Add section blocks for debug.h to prpl.h
|
20147
66f05a854eee
applied changes from 8a731bbd0197fbcc91a705c2d8f528154216defa
Richard Laager <rlaager@pidgin.im>
parents:
19859
diff
changeset
|
1 | /* purple |
| 8273 | 2 | * |
| 15884 | 3 | * Purple is the legal property of its developers, whose names are too numerous |
| 8273 | 4 | * to list here. Please refer to the COPYRIGHT file distributed with this |
| 5 | * source distribution. | |
| 6 | * | |
| 7 | * This program is free software; you can redistribute it and/or modify | |
| 8 | * it under the terms of the GNU General Public License as published by | |
| 9 | * the Free Software Foundation; either version 2 of the License, or | |
| 10 | * (at your option) any later version. | |
| 11 | * | |
| 12 | * This program is distributed in the hope that it will be useful, | |
| 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| 15 | * GNU General Public License for more details. | |
| 16 | * | |
| 17 | * You should have received a copy of the GNU General Public License | |
| 18 | * along with this program; if not, write to the Free Software | |
|
19859
71d37b57eff2
The FSF changed its address a while ago; our files were out of date.
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
18075
diff
changeset
|
19 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA |
| 8273 | 20 | */ |
|
35440
467bb21b82a1
Add section blocks for debug.h to prpl.h
Ankit Vani <a@nevitus.org>
parents:
35420
diff
changeset
|
21 | /** |
|
467bb21b82a1
Add section blocks for debug.h to prpl.h
Ankit Vani <a@nevitus.org>
parents:
35420
diff
changeset
|
22 | * SECTION:eventloop |
|
467bb21b82a1
Add section blocks for debug.h to prpl.h
Ankit Vani <a@nevitus.org>
parents:
35420
diff
changeset
|
23 | * @section_id: libpurple-eventloop |
|
467bb21b82a1
Add section blocks for debug.h to prpl.h
Ankit Vani <a@nevitus.org>
parents:
35420
diff
changeset
|
24 | * @short_description: <filename>eventloop.h</filename> |
|
467bb21b82a1
Add section blocks for debug.h to prpl.h
Ankit Vani <a@nevitus.org>
parents:
35420
diff
changeset
|
25 | * @title: Event Loop API |
|
467bb21b82a1
Add section blocks for debug.h to prpl.h
Ankit Vani <a@nevitus.org>
parents:
35420
diff
changeset
|
26 | */ |
|
467bb21b82a1
Add section blocks for debug.h to prpl.h
Ankit Vani <a@nevitus.org>
parents:
35420
diff
changeset
|
27 | |
| 15884 | 28 | #ifndef _PURPLE_EVENTLOOP_H_ |
| 29 | #define _PURPLE_EVENTLOOP_H_ | |
| 8273 | 30 | |
|
10023
6b0014040323
[gaim-migrate @ 10955]
Mark Doliner <markdoliner@pidgin.im>
parents:
10008
diff
changeset
|
31 | #include <glib.h> |
| 8273 | 32 | |
| 33 | /** | |
|
35397
31fa3a1aeff5
Move changes from soc.2013.gobjectification.gtkdoc to this branch
Ankit Vani <a@nevitus.org>
parents:
35393
diff
changeset
|
34 | * PurpleInputCondition: |
|
31fa3a1aeff5
Move changes from soc.2013.gobjectification.gtkdoc to this branch
Ankit Vani <a@nevitus.org>
parents:
35393
diff
changeset
|
35 | * @PURPLE_INPUT_READ: A read condition. |
|
31fa3a1aeff5
Move changes from soc.2013.gobjectification.gtkdoc to this branch
Ankit Vani <a@nevitus.org>
parents:
35393
diff
changeset
|
36 | * @PURPLE_INPUT_WRITE: A write condition. |
|
31fa3a1aeff5
Move changes from soc.2013.gobjectification.gtkdoc to this branch
Ankit Vani <a@nevitus.org>
parents:
35393
diff
changeset
|
37 | * |
| 8273 | 38 | * An input condition. |
| 39 | */ | |
| 40 | typedef enum | |
| 41 | { | |
|
35397
31fa3a1aeff5
Move changes from soc.2013.gobjectification.gtkdoc to this branch
Ankit Vani <a@nevitus.org>
parents:
35393
diff
changeset
|
42 | PURPLE_INPUT_READ = 1 << 0, |
|
31fa3a1aeff5
Move changes from soc.2013.gobjectification.gtkdoc to this branch
Ankit Vani <a@nevitus.org>
parents:
35393
diff
changeset
|
43 | PURPLE_INPUT_WRITE = 1 << 1 |
| 8273 | 44 | |
| 15884 | 45 | } PurpleInputCondition; |
| 8273 | 46 | |
|
35397
31fa3a1aeff5
Move changes from soc.2013.gobjectification.gtkdoc to this branch
Ankit Vani <a@nevitus.org>
parents:
35393
diff
changeset
|
47 | /** |
|
31fa3a1aeff5
Move changes from soc.2013.gobjectification.gtkdoc to this branch
Ankit Vani <a@nevitus.org>
parents:
35393
diff
changeset
|
48 | * PurpleInputFunction: |
|
31fa3a1aeff5
Move changes from soc.2013.gobjectification.gtkdoc to this branch
Ankit Vani <a@nevitus.org>
parents:
35393
diff
changeset
|
49 | * |
|
31fa3a1aeff5
Move changes from soc.2013.gobjectification.gtkdoc to this branch
Ankit Vani <a@nevitus.org>
parents:
35393
diff
changeset
|
50 | * The type of callbacks to handle events on file descriptors, as passed to |
|
31fa3a1aeff5
Move changes from soc.2013.gobjectification.gtkdoc to this branch
Ankit Vani <a@nevitus.org>
parents:
35393
diff
changeset
|
51 | * purple_input_add(). The callback will receive the @user_data passed to |
|
31fa3a1aeff5
Move changes from soc.2013.gobjectification.gtkdoc to this branch
Ankit Vani <a@nevitus.org>
parents:
35393
diff
changeset
|
52 | * purple_input_add(), the file descriptor on which the event occurred, and the |
|
31fa3a1aeff5
Move changes from soc.2013.gobjectification.gtkdoc to this branch
Ankit Vani <a@nevitus.org>
parents:
35393
diff
changeset
|
53 | * condition that was satisfied to cause the callback to be invoked. |
|
22526
4223bc1ce147
Document PurpleEventLoopUiOps and associated misc.
Will Thompson <resiak@pidgin.im>
parents:
20940
diff
changeset
|
54 | */ |
| 15884 | 55 | typedef void (*PurpleInputFunction)(gpointer, gint, PurpleInputCondition); |
| 8273 | 56 | |
| 15884 | 57 | typedef struct _PurpleEventLoopUiOps PurpleEventLoopUiOps; |
| 8273 | 58 | |
|
35397
31fa3a1aeff5
Move changes from soc.2013.gobjectification.gtkdoc to this branch
Ankit Vani <a@nevitus.org>
parents:
35393
diff
changeset
|
59 | /** |
|
31fa3a1aeff5
Move changes from soc.2013.gobjectification.gtkdoc to this branch
Ankit Vani <a@nevitus.org>
parents:
35393
diff
changeset
|
60 | * PurpleEventLoopUiOps: |
|
31fa3a1aeff5
Move changes from soc.2013.gobjectification.gtkdoc to this branch
Ankit Vani <a@nevitus.org>
parents:
35393
diff
changeset
|
61 | * |
|
31fa3a1aeff5
Move changes from soc.2013.gobjectification.gtkdoc to this branch
Ankit Vani <a@nevitus.org>
parents:
35393
diff
changeset
|
62 | * An abstraction of an application's mainloop; libpurple will use this to |
|
31fa3a1aeff5
Move changes from soc.2013.gobjectification.gtkdoc to this branch
Ankit Vani <a@nevitus.org>
parents:
35393
diff
changeset
|
63 | * watch file descriptors and schedule timed callbacks. If your application |
|
31fa3a1aeff5
Move changes from soc.2013.gobjectification.gtkdoc to this branch
Ankit Vani <a@nevitus.org>
parents:
35393
diff
changeset
|
64 | * uses the glib mainloop, there is an implementation of this struct in |
| 35419 | 65 | * <filename>libpurple/example/nullclient.c</filename> which you can use verbatim. |
|
22526
4223bc1ce147
Document PurpleEventLoopUiOps and associated misc.
Will Thompson <resiak@pidgin.im>
parents:
20940
diff
changeset
|
66 | */ |
| 15884 | 67 | struct _PurpleEventLoopUiOps |
| 8273 | 68 | { |
| 69 | /** | |
|
22526
4223bc1ce147
Document PurpleEventLoopUiOps and associated misc.
Will Thompson <resiak@pidgin.im>
parents:
20940
diff
changeset
|
70 | * Should create a callback timer with an interval measured in |
|
35397
31fa3a1aeff5
Move changes from soc.2013.gobjectification.gtkdoc to this branch
Ankit Vani <a@nevitus.org>
parents:
35393
diff
changeset
|
71 | * milliseconds. The supplied @function should be called every |
|
31fa3a1aeff5
Move changes from soc.2013.gobjectification.gtkdoc to this branch
Ankit Vani <a@nevitus.org>
parents:
35393
diff
changeset
|
72 | * @interval seconds until it returns %FALSE, after which it should not |
|
22526
4223bc1ce147
Document PurpleEventLoopUiOps and associated misc.
Will Thompson <resiak@pidgin.im>
parents:
20940
diff
changeset
|
73 | * be called again. |
|
4223bc1ce147
Document PurpleEventLoopUiOps and associated misc.
Will Thompson <resiak@pidgin.im>
parents:
20940
diff
changeset
|
74 | * |
|
4223bc1ce147
Document PurpleEventLoopUiOps and associated misc.
Will Thompson <resiak@pidgin.im>
parents:
20940
diff
changeset
|
75 | * Analogous to g_timeout_add in glib. |
|
4223bc1ce147
Document PurpleEventLoopUiOps and associated misc.
Will Thompson <resiak@pidgin.im>
parents:
20940
diff
changeset
|
76 | * |
|
24050
583a6a2f13eb
Add a note about the timeout_add uiop being used to synchronize threads on win32.
Daniel Atallah <datallah@pidgin.im>
parents:
23063
diff
changeset
|
77 | * Note: On Win32, this function may be called from a thread other than |
|
583a6a2f13eb
Add a note about the timeout_add uiop being used to synchronize threads on win32.
Daniel Atallah <datallah@pidgin.im>
parents:
23063
diff
changeset
|
78 | * the libpurple thread. You should make sure to detect this situation |
|
583a6a2f13eb
Add a note about the timeout_add uiop being used to synchronize threads on win32.
Daniel Atallah <datallah@pidgin.im>
parents:
23063
diff
changeset
|
79 | * and to only call "function" from the libpurple thread. |
|
583a6a2f13eb
Add a note about the timeout_add uiop being used to synchronize threads on win32.
Daniel Atallah <datallah@pidgin.im>
parents:
23063
diff
changeset
|
80 | * |
| 35420 | 81 | * @interval: the interval in <emphasis>milliseconds</emphasis> between calls |
|
35397
31fa3a1aeff5
Move changes from soc.2013.gobjectification.gtkdoc to this branch
Ankit Vani <a@nevitus.org>
parents:
35393
diff
changeset
|
82 | * to @function. |
|
31fa3a1aeff5
Move changes from soc.2013.gobjectification.gtkdoc to this branch
Ankit Vani <a@nevitus.org>
parents:
35393
diff
changeset
|
83 | * @data: arbitrary data to be passed to @function at each |
|
22526
4223bc1ce147
Document PurpleEventLoopUiOps and associated misc.
Will Thompson <resiak@pidgin.im>
parents:
20940
diff
changeset
|
84 | * call. |
|
35397
31fa3a1aeff5
Move changes from soc.2013.gobjectification.gtkdoc to this branch
Ankit Vani <a@nevitus.org>
parents:
35393
diff
changeset
|
85 | * @todo Who is responsible for freeing @data ? |
|
22526
4223bc1ce147
Document PurpleEventLoopUiOps and associated misc.
Will Thompson <resiak@pidgin.im>
parents:
20940
diff
changeset
|
86 | * |
|
35393
00f876b129bc
Initial replacements for gtk-doc style comments
Ankit Vani <a@nevitus.org>
parents:
35024
diff
changeset
|
87 | * Returns: a handle for the timeout, which can be passed to |
|
22526
4223bc1ce147
Document PurpleEventLoopUiOps and associated misc.
Will Thompson <resiak@pidgin.im>
parents:
20940
diff
changeset
|
88 | * #timeout_remove. |
|
4223bc1ce147
Document PurpleEventLoopUiOps and associated misc.
Will Thompson <resiak@pidgin.im>
parents:
20940
diff
changeset
|
89 | * |
|
4223bc1ce147
Document PurpleEventLoopUiOps and associated misc.
Will Thompson <resiak@pidgin.im>
parents:
20940
diff
changeset
|
90 | * @see purple_timeout_add |
| 8273 | 91 | **/ |
| 92 | guint (*timeout_add)(guint interval, GSourceFunc function, gpointer data); | |
| 93 | ||
| 94 | /** | |
|
22526
4223bc1ce147
Document PurpleEventLoopUiOps and associated misc.
Will Thompson <resiak@pidgin.im>
parents:
20940
diff
changeset
|
95 | * Should remove a callback timer. Analogous to g_source_remove in glib. |
|
35393
00f876b129bc
Initial replacements for gtk-doc style comments
Ankit Vani <a@nevitus.org>
parents:
35024
diff
changeset
|
96 | * @handle: an identifier for a timeout, as returned by |
|
22526
4223bc1ce147
Document PurpleEventLoopUiOps and associated misc.
Will Thompson <resiak@pidgin.im>
parents:
20940
diff
changeset
|
97 | * #timeout_add. |
|
35397
31fa3a1aeff5
Move changes from soc.2013.gobjectification.gtkdoc to this branch
Ankit Vani <a@nevitus.org>
parents:
35393
diff
changeset
|
98 | * Returns: %TRUE if the timeout identified by @handle was |
|
22526
4223bc1ce147
Document PurpleEventLoopUiOps and associated misc.
Will Thompson <resiak@pidgin.im>
parents:
20940
diff
changeset
|
99 | * found and removed. |
|
4223bc1ce147
Document PurpleEventLoopUiOps and associated misc.
Will Thompson <resiak@pidgin.im>
parents:
20940
diff
changeset
|
100 | * @see purple_timeout_remove |
| 8287 | 101 | */ |
|
15729
6932ac4e5b3d
Change out source_remove and input_remove eventloop functions to return
Mark Doliner <markdoliner@pidgin.im>
parents:
15435
diff
changeset
|
102 | gboolean (*timeout_remove)(guint handle); |
| 8287 | 103 | |
| 104 | /** | |
|
22526
4223bc1ce147
Document PurpleEventLoopUiOps and associated misc.
Will Thompson <resiak@pidgin.im>
parents:
20940
diff
changeset
|
105 | * Should add an input handler. Analogous to g_io_add_watch_full in |
|
4223bc1ce147
Document PurpleEventLoopUiOps and associated misc.
Will Thompson <resiak@pidgin.im>
parents:
20940
diff
changeset
|
106 | * glib. |
|
4223bc1ce147
Document PurpleEventLoopUiOps and associated misc.
Will Thompson <resiak@pidgin.im>
parents:
20940
diff
changeset
|
107 | * |
|
35393
00f876b129bc
Initial replacements for gtk-doc style comments
Ankit Vani <a@nevitus.org>
parents:
35024
diff
changeset
|
108 | * @fd: a file descriptor to watch for events |
|
35397
31fa3a1aeff5
Move changes from soc.2013.gobjectification.gtkdoc to this branch
Ankit Vani <a@nevitus.org>
parents:
35393
diff
changeset
|
109 | * @cond: a bitwise OR of events on @fd for which @func |
|
22526
4223bc1ce147
Document PurpleEventLoopUiOps and associated misc.
Will Thompson <resiak@pidgin.im>
parents:
20940
diff
changeset
|
110 | * should be called. |
|
35397
31fa3a1aeff5
Move changes from soc.2013.gobjectification.gtkdoc to this branch
Ankit Vani <a@nevitus.org>
parents:
35393
diff
changeset
|
111 | * @func: a callback to fire whenever a relevant event on |
|
31fa3a1aeff5
Move changes from soc.2013.gobjectification.gtkdoc to this branch
Ankit Vani <a@nevitus.org>
parents:
35393
diff
changeset
|
112 | * @fd occurs. |
|
31fa3a1aeff5
Move changes from soc.2013.gobjectification.gtkdoc to this branch
Ankit Vani <a@nevitus.org>
parents:
35393
diff
changeset
|
113 | * @user_data: arbitrary data to pass to @fd. |
|
35393
00f876b129bc
Initial replacements for gtk-doc style comments
Ankit Vani <a@nevitus.org>
parents:
35024
diff
changeset
|
114 | * Returns: an identifier for this input handler, which can be |
|
22526
4223bc1ce147
Document PurpleEventLoopUiOps and associated misc.
Will Thompson <resiak@pidgin.im>
parents:
20940
diff
changeset
|
115 | * passed to #input_remove. |
|
4223bc1ce147
Document PurpleEventLoopUiOps and associated misc.
Will Thompson <resiak@pidgin.im>
parents:
20940
diff
changeset
|
116 | * |
|
4223bc1ce147
Document PurpleEventLoopUiOps and associated misc.
Will Thompson <resiak@pidgin.im>
parents:
20940
diff
changeset
|
117 | * @see purple_input_add |
| 8273 | 118 | */ |
| 15884 | 119 | guint (*input_add)(int fd, PurpleInputCondition cond, |
|
22526
4223bc1ce147
Document PurpleEventLoopUiOps and associated misc.
Will Thompson <resiak@pidgin.im>
parents:
20940
diff
changeset
|
120 | PurpleInputFunction func, gpointer user_data); |
| 8273 | 121 | |
| 122 | /** | |
|
22526
4223bc1ce147
Document PurpleEventLoopUiOps and associated misc.
Will Thompson <resiak@pidgin.im>
parents:
20940
diff
changeset
|
123 | * Should remove an input handler. Analogous to g_source_remove in glib. |
|
35393
00f876b129bc
Initial replacements for gtk-doc style comments
Ankit Vani <a@nevitus.org>
parents:
35024
diff
changeset
|
124 | * @handle: an identifier, as returned by #input_add. |
|
00f876b129bc
Initial replacements for gtk-doc style comments
Ankit Vani <a@nevitus.org>
parents:
35024
diff
changeset
|
125 | * Returns: %TRUE if the input handler was found and removed. |
|
22526
4223bc1ce147
Document PurpleEventLoopUiOps and associated misc.
Will Thompson <resiak@pidgin.im>
parents:
20940
diff
changeset
|
126 | * @see purple_input_remove |
| 8273 | 127 | */ |
|
15729
6932ac4e5b3d
Change out source_remove and input_remove eventloop functions to return
Mark Doliner <markdoliner@pidgin.im>
parents:
15435
diff
changeset
|
128 | gboolean (*input_remove)(guint handle); |
|
25888
d0fdd378a635
Remove trailing whitespace
Mark Doliner <markdoliner@pidgin.im>
parents:
24050
diff
changeset
|
129 | |
|
d0fdd378a635
Remove trailing whitespace
Mark Doliner <markdoliner@pidgin.im>
parents:
24050
diff
changeset
|
130 | |
|
15746
017e33725857
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 <evands@pidgin.im>
parents:
15729
diff
changeset
|
131 | /** |
|
22526
4223bc1ce147
Document PurpleEventLoopUiOps and associated misc.
Will Thompson <resiak@pidgin.im>
parents:
20940
diff
changeset
|
132 | * If implemented, should get the current error status for an input. |
|
4223bc1ce147
Document PurpleEventLoopUiOps and associated misc.
Will Thompson <resiak@pidgin.im>
parents:
20940
diff
changeset
|
133 | * |
|
4223bc1ce147
Document PurpleEventLoopUiOps and associated misc.
Will Thompson <resiak@pidgin.im>
parents:
20940
diff
changeset
|
134 | * Implementation of this UI op is optional. Implement it if the UI's |
|
4223bc1ce147
Document PurpleEventLoopUiOps and associated misc.
Will Thompson <resiak@pidgin.im>
parents:
20940
diff
changeset
|
135 | * sockets or event loop needs to customize determination of socket |
| 35419 | 136 | * error status. If unimplemented, <literal>getsockopt(2)</literal> will |
| 137 | * be used instead. | |
|
22526
4223bc1ce147
Document PurpleEventLoopUiOps and associated misc.
Will Thompson <resiak@pidgin.im>
parents:
20940
diff
changeset
|
138 | * |
|
4223bc1ce147
Document PurpleEventLoopUiOps and associated misc.
Will Thompson <resiak@pidgin.im>
parents:
20940
diff
changeset
|
139 | * @see purple_input_get_error |
|
15746
017e33725857
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 <evands@pidgin.im>
parents:
15729
diff
changeset
|
140 | */ |
|
017e33725857
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 <evands@pidgin.im>
parents:
15729
diff
changeset
|
141 | int (*input_get_error)(int fd, int *error); |
|
017e33725857
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 <evands@pidgin.im>
parents:
15729
diff
changeset
|
142 | |
|
18070
79c7fe0d8e4b
Wire everything up and document it.
Richard Laager <rlaager@pidgin.im>
parents:
18068
diff
changeset
|
143 | /** |
|
22526
4223bc1ce147
Document PurpleEventLoopUiOps and associated misc.
Will Thompson <resiak@pidgin.im>
parents:
20940
diff
changeset
|
144 | * If implemented, should create a callback timer with an interval |
|
4223bc1ce147
Document PurpleEventLoopUiOps and associated misc.
Will Thompson <resiak@pidgin.im>
parents:
20940
diff
changeset
|
145 | * measured in seconds. Analogous to g_timeout_add_seconds in glib. |
|
18070
79c7fe0d8e4b
Wire everything up and document it.
Richard Laager <rlaager@pidgin.im>
parents:
18068
diff
changeset
|
146 | * |
|
79c7fe0d8e4b
Wire everything up and document it.
Richard Laager <rlaager@pidgin.im>
parents:
18068
diff
changeset
|
147 | * This allows UIs to group timers for better power efficiency. For |
|
35397
31fa3a1aeff5
Move changes from soc.2013.gobjectification.gtkdoc to this branch
Ankit Vani <a@nevitus.org>
parents:
35393
diff
changeset
|
148 | * this reason, @interval may be rounded by up to a second. |
|
18070
79c7fe0d8e4b
Wire everything up and document it.
Richard Laager <rlaager@pidgin.im>
parents:
18068
diff
changeset
|
149 | * |
|
79c7fe0d8e4b
Wire everything up and document it.
Richard Laager <rlaager@pidgin.im>
parents:
18068
diff
changeset
|
150 | * Implementation of this UI op is optional. If it's not implemented, |
|
22526
4223bc1ce147
Document PurpleEventLoopUiOps and associated misc.
Will Thompson <resiak@pidgin.im>
parents:
20940
diff
changeset
|
151 | * calls to purple_timeout_add_seconds() will be serviced by |
|
4223bc1ce147
Document PurpleEventLoopUiOps and associated misc.
Will Thompson <resiak@pidgin.im>
parents:
20940
diff
changeset
|
152 | * #timeout_add. |
|
18070
79c7fe0d8e4b
Wire everything up and document it.
Richard Laager <rlaager@pidgin.im>
parents:
18068
diff
changeset
|
153 | * |
|
22526
4223bc1ce147
Document PurpleEventLoopUiOps and associated misc.
Will Thompson <resiak@pidgin.im>
parents:
20940
diff
changeset
|
154 | * @see purple_timeout_add_seconds() |
|
18070
79c7fe0d8e4b
Wire everything up and document it.
Richard Laager <rlaager@pidgin.im>
parents:
18068
diff
changeset
|
155 | **/ |
|
22526
4223bc1ce147
Document PurpleEventLoopUiOps and associated misc.
Will Thompson <resiak@pidgin.im>
parents:
20940
diff
changeset
|
156 | guint (*timeout_add_seconds)(guint interval, GSourceFunc function, |
|
4223bc1ce147
Document PurpleEventLoopUiOps and associated misc.
Will Thompson <resiak@pidgin.im>
parents:
20940
diff
changeset
|
157 | gpointer data); |
|
18070
79c7fe0d8e4b
Wire everything up and document it.
Richard Laager <rlaager@pidgin.im>
parents:
18068
diff
changeset
|
158 | |
|
35024
eb3afb7643ce
Added /*< private >*/ for padding members, clean them up and add missing ones
Ankit Vani <a@nevitus.org>
parents:
33291
diff
changeset
|
159 | /*< private >*/ |
|
eb3afb7643ce
Added /*< private >*/ for padding members, clean them up and add missing ones
Ankit Vani <a@nevitus.org>
parents:
33291
diff
changeset
|
160 | void (*_purple_reserved1)(void); |
|
16743
1ce5ffe12e2a
Initial addition of padding for ui_ops and other class-like structs
Gary Kramlich <grim@reaperworld.com>
parents:
15997
diff
changeset
|
161 | void (*_purple_reserved2)(void); |
|
1ce5ffe12e2a
Initial addition of padding for ui_ops and other class-like structs
Gary Kramlich <grim@reaperworld.com>
parents:
15997
diff
changeset
|
162 | void (*_purple_reserved3)(void); |
|
1ce5ffe12e2a
Initial addition of padding for ui_ops and other class-like structs
Gary Kramlich <grim@reaperworld.com>
parents:
15997
diff
changeset
|
163 | void (*_purple_reserved4)(void); |
| 8273 | 164 | }; |
| 165 | ||
|
32787
7072f190d6ad
Use G_BEGIN/END_DECLS in public libpurple files. This was
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
32438
diff
changeset
|
166 | G_BEGIN_DECLS |
|
7072f190d6ad
Use G_BEGIN/END_DECLS in public libpurple files. This was
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
32438
diff
changeset
|
167 | |
| 8273 | 168 | /**************************************************************************/ |
| 169 | /** @name Event Loop API */ | |
| 170 | /**************************************************************************/ | |
| 171 | /*@{*/ | |
| 172 | /** | |
|
35397
31fa3a1aeff5
Move changes from soc.2013.gobjectification.gtkdoc to this branch
Ankit Vani <a@nevitus.org>
parents:
35393
diff
changeset
|
173 | * purple_timeout_add: |
|
31fa3a1aeff5
Move changes from soc.2013.gobjectification.gtkdoc to this branch
Ankit Vani <a@nevitus.org>
parents:
35393
diff
changeset
|
174 | * @interval: The time between calls of the function, in |
|
31fa3a1aeff5
Move changes from soc.2013.gobjectification.gtkdoc to this branch
Ankit Vani <a@nevitus.org>
parents:
35393
diff
changeset
|
175 | * milliseconds. |
|
31fa3a1aeff5
Move changes from soc.2013.gobjectification.gtkdoc to this branch
Ankit Vani <a@nevitus.org>
parents:
35393
diff
changeset
|
176 | * @function: The function to call. |
|
31fa3a1aeff5
Move changes from soc.2013.gobjectification.gtkdoc to this branch
Ankit Vani <a@nevitus.org>
parents:
35393
diff
changeset
|
177 | * @data: data to pass to @function. |
|
31fa3a1aeff5
Move changes from soc.2013.gobjectification.gtkdoc to this branch
Ankit Vani <a@nevitus.org>
parents:
35393
diff
changeset
|
178 | * |
| 8273 | 179 | * Creates a callback timer. |
|
25888
d0fdd378a635
Remove trailing whitespace
Mark Doliner <markdoliner@pidgin.im>
parents:
24050
diff
changeset
|
180 | * |
|
35393
00f876b129bc
Initial replacements for gtk-doc style comments
Ankit Vani <a@nevitus.org>
parents:
35024
diff
changeset
|
181 | * The timer will repeat until the function returns %FALSE. The |
| 8273 | 182 | * first call will be at the end of the first interval. |
|
18070
79c7fe0d8e4b
Wire everything up and document it.
Richard Laager <rlaager@pidgin.im>
parents:
18068
diff
changeset
|
183 | * |
|
79c7fe0d8e4b
Wire everything up and document it.
Richard Laager <rlaager@pidgin.im>
parents:
18068
diff
changeset
|
184 | * If the timer is in a multiple of seconds, use purple_timeout_add_seconds() |
|
79c7fe0d8e4b
Wire everything up and document it.
Richard Laager <rlaager@pidgin.im>
parents:
18068
diff
changeset
|
185 | * instead as it allows UIs to group timers for power efficiency. |
|
79c7fe0d8e4b
Wire everything up and document it.
Richard Laager <rlaager@pidgin.im>
parents:
18068
diff
changeset
|
186 | * |
|
35393
00f876b129bc
Initial replacements for gtk-doc style comments
Ankit Vani <a@nevitus.org>
parents:
35024
diff
changeset
|
187 | * Returns: A handle to the timer which can be passed to |
|
22526
4223bc1ce147
Document PurpleEventLoopUiOps and associated misc.
Will Thompson <resiak@pidgin.im>
parents:
20940
diff
changeset
|
188 | * purple_timeout_remove() to remove the timer. |
|
18070
79c7fe0d8e4b
Wire everything up and document it.
Richard Laager <rlaager@pidgin.im>
parents:
18068
diff
changeset
|
189 | */ |
|
79c7fe0d8e4b
Wire everything up and document it.
Richard Laager <rlaager@pidgin.im>
parents:
18068
diff
changeset
|
190 | guint purple_timeout_add(guint interval, GSourceFunc function, gpointer data); |
|
79c7fe0d8e4b
Wire everything up and document it.
Richard Laager <rlaager@pidgin.im>
parents:
18068
diff
changeset
|
191 | |
|
79c7fe0d8e4b
Wire everything up and document it.
Richard Laager <rlaager@pidgin.im>
parents:
18068
diff
changeset
|
192 | /** |
|
35397
31fa3a1aeff5
Move changes from soc.2013.gobjectification.gtkdoc to this branch
Ankit Vani <a@nevitus.org>
parents:
35393
diff
changeset
|
193 | * purple_timeout_add_seconds: |
|
31fa3a1aeff5
Move changes from soc.2013.gobjectification.gtkdoc to this branch
Ankit Vani <a@nevitus.org>
parents:
35393
diff
changeset
|
194 | * @interval: The time between calls of the function, in |
|
31fa3a1aeff5
Move changes from soc.2013.gobjectification.gtkdoc to this branch
Ankit Vani <a@nevitus.org>
parents:
35393
diff
changeset
|
195 | * seconds. |
|
31fa3a1aeff5
Move changes from soc.2013.gobjectification.gtkdoc to this branch
Ankit Vani <a@nevitus.org>
parents:
35393
diff
changeset
|
196 | * @function: The function to call. |
|
31fa3a1aeff5
Move changes from soc.2013.gobjectification.gtkdoc to this branch
Ankit Vani <a@nevitus.org>
parents:
35393
diff
changeset
|
197 | * @data: data to pass to @function. |
|
31fa3a1aeff5
Move changes from soc.2013.gobjectification.gtkdoc to this branch
Ankit Vani <a@nevitus.org>
parents:
35393
diff
changeset
|
198 | * |
|
18070
79c7fe0d8e4b
Wire everything up and document it.
Richard Laager <rlaager@pidgin.im>
parents:
18068
diff
changeset
|
199 | * Creates a callback timer. |
|
79c7fe0d8e4b
Wire everything up and document it.
Richard Laager <rlaager@pidgin.im>
parents:
18068
diff
changeset
|
200 | * |
|
35393
00f876b129bc
Initial replacements for gtk-doc style comments
Ankit Vani <a@nevitus.org>
parents:
35024
diff
changeset
|
201 | * The timer will repeat until the function returns %FALSE. The |
|
18070
79c7fe0d8e4b
Wire everything up and document it.
Richard Laager <rlaager@pidgin.im>
parents:
18068
diff
changeset
|
202 | * first call will be at the end of the first interval. |
|
79c7fe0d8e4b
Wire everything up and document it.
Richard Laager <rlaager@pidgin.im>
parents:
18068
diff
changeset
|
203 | * |
|
79c7fe0d8e4b
Wire everything up and document it.
Richard Laager <rlaager@pidgin.im>
parents:
18068
diff
changeset
|
204 | * This function allows UIs to group timers for better power efficiency. For |
|
35397
31fa3a1aeff5
Move changes from soc.2013.gobjectification.gtkdoc to this branch
Ankit Vani <a@nevitus.org>
parents:
35393
diff
changeset
|
205 | * this reason, @interval may be rounded by up to a second. |
|
25888
d0fdd378a635
Remove trailing whitespace
Mark Doliner <markdoliner@pidgin.im>
parents:
24050
diff
changeset
|
206 | * |
|
35393
00f876b129bc
Initial replacements for gtk-doc style comments
Ankit Vani <a@nevitus.org>
parents:
35024
diff
changeset
|
207 | * Returns: A handle to the timer which can be passed to |
|
22526
4223bc1ce147
Document PurpleEventLoopUiOps and associated misc.
Will Thompson <resiak@pidgin.im>
parents:
20940
diff
changeset
|
208 | * purple_timeout_remove() to remove the timer. |
|
10071
d2ba11541693
[gaim-migrate @ 11047]
Jonathan Champ <royanee@users.sourceforge.net>
parents:
10023
diff
changeset
|
209 | */ |
|
18075
1e4bb0043a98
It's GLIB_CHECK_VERSION, not GLIB_VERSION_CHECK.
Richard Laager <rlaager@pidgin.im>
parents:
18070
diff
changeset
|
210 | guint purple_timeout_add_seconds(guint interval, GSourceFunc function, gpointer data); |
| 8273 | 211 | |
| 212 | /** | |
|
35397
31fa3a1aeff5
Move changes from soc.2013.gobjectification.gtkdoc to this branch
Ankit Vani <a@nevitus.org>
parents:
35393
diff
changeset
|
213 | * purple_timeout_remove: |
|
31fa3a1aeff5
Move changes from soc.2013.gobjectification.gtkdoc to this branch
Ankit Vani <a@nevitus.org>
parents:
35393
diff
changeset
|
214 | * @handle: The handle, as returned by purple_timeout_add(). |
| 8287 | 215 | * |
|
35397
31fa3a1aeff5
Move changes from soc.2013.gobjectification.gtkdoc to this branch
Ankit Vani <a@nevitus.org>
parents:
35393
diff
changeset
|
216 | * Removes a timeout handler. |
|
8387
381fc8b4f8f7
[gaim-migrate @ 9115]
Christian Hammond <chipx86@chipx86.com>
parents:
8287
diff
changeset
|
217 | * |
|
35393
00f876b129bc
Initial replacements for gtk-doc style comments
Ankit Vani <a@nevitus.org>
parents:
35024
diff
changeset
|
218 | * Returns: %TRUE if the handler was successfully removed. |
| 8287 | 219 | */ |
| 15884 | 220 | gboolean purple_timeout_remove(guint handle); |
| 8287 | 221 | |
| 222 | /** | |
|
35397
31fa3a1aeff5
Move changes from soc.2013.gobjectification.gtkdoc to this branch
Ankit Vani <a@nevitus.org>
parents:
35393
diff
changeset
|
223 | * purple_input_add: |
|
35393
00f876b129bc
Initial replacements for gtk-doc style comments
Ankit Vani <a@nevitus.org>
parents:
35024
diff
changeset
|
224 | * @fd: The input file descriptor. |
|
00f876b129bc
Initial replacements for gtk-doc style comments
Ankit Vani <a@nevitus.org>
parents:
35024
diff
changeset
|
225 | * @cond: The condition type. |
|
00f876b129bc
Initial replacements for gtk-doc style comments
Ankit Vani <a@nevitus.org>
parents:
35024
diff
changeset
|
226 | * @func: The callback function for data. |
|
00f876b129bc
Initial replacements for gtk-doc style comments
Ankit Vani <a@nevitus.org>
parents:
35024
diff
changeset
|
227 | * @user_data: User-specified data. |
| 8273 | 228 | * |
|
35397
31fa3a1aeff5
Move changes from soc.2013.gobjectification.gtkdoc to this branch
Ankit Vani <a@nevitus.org>
parents:
35393
diff
changeset
|
229 | * Adds an input handler. |
|
31fa3a1aeff5
Move changes from soc.2013.gobjectification.gtkdoc to this branch
Ankit Vani <a@nevitus.org>
parents:
35393
diff
changeset
|
230 | * |
|
35393
00f876b129bc
Initial replacements for gtk-doc style comments
Ankit Vani <a@nevitus.org>
parents:
35024
diff
changeset
|
231 | * Returns: The resulting handle (will be greater than 0). |
| 8273 | 232 | * @see g_io_add_watch_full |
| 233 | */ | |
| 15884 | 234 | guint purple_input_add(int fd, PurpleInputCondition cond, |
|
22526
4223bc1ce147
Document PurpleEventLoopUiOps and associated misc.
Will Thompson <resiak@pidgin.im>
parents:
20940
diff
changeset
|
235 | PurpleInputFunction func, gpointer user_data); |
| 8273 | 236 | |
| 237 | /** | |
|
35397
31fa3a1aeff5
Move changes from soc.2013.gobjectification.gtkdoc to this branch
Ankit Vani <a@nevitus.org>
parents:
35393
diff
changeset
|
238 | * purple_input_remove: |
|
35393
00f876b129bc
Initial replacements for gtk-doc style comments
Ankit Vani <a@nevitus.org>
parents:
35024
diff
changeset
|
239 | * @handle: The handle of the input handler. Note that this is the return |
|
22526
4223bc1ce147
Document PurpleEventLoopUiOps and associated misc.
Will Thompson <resiak@pidgin.im>
parents:
20940
diff
changeset
|
240 | * value from purple_input_add(), <i>not</i> the file descriptor. |
|
35397
31fa3a1aeff5
Move changes from soc.2013.gobjectification.gtkdoc to this branch
Ankit Vani <a@nevitus.org>
parents:
35393
diff
changeset
|
241 | * |
|
31fa3a1aeff5
Move changes from soc.2013.gobjectification.gtkdoc to this branch
Ankit Vani <a@nevitus.org>
parents:
35393
diff
changeset
|
242 | * Removes an input handler. |
| 8273 | 243 | */ |
| 15884 | 244 | gboolean purple_input_remove(guint handle); |
|
15746
017e33725857
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 <evands@pidgin.im>
parents:
15729
diff
changeset
|
245 | |
|
017e33725857
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 <evands@pidgin.im>
parents:
15729
diff
changeset
|
246 | /** |
|
35397
31fa3a1aeff5
Move changes from soc.2013.gobjectification.gtkdoc to this branch
Ankit Vani <a@nevitus.org>
parents:
35393
diff
changeset
|
247 | * purple_input_get_error: |
|
31fa3a1aeff5
Move changes from soc.2013.gobjectification.gtkdoc to this branch
Ankit Vani <a@nevitus.org>
parents:
35393
diff
changeset
|
248 | * @fd: The input file descriptor. |
|
31fa3a1aeff5
Move changes from soc.2013.gobjectification.gtkdoc to this branch
Ankit Vani <a@nevitus.org>
parents:
35393
diff
changeset
|
249 | * @error: A pointer to an #int which on return will have the error, or |
|
31fa3a1aeff5
Move changes from soc.2013.gobjectification.gtkdoc to this branch
Ankit Vani <a@nevitus.org>
parents:
35393
diff
changeset
|
250 | * 0 if no error. |
|
31fa3a1aeff5
Move changes from soc.2013.gobjectification.gtkdoc to this branch
Ankit Vani <a@nevitus.org>
parents:
35393
diff
changeset
|
251 | * |
|
15746
017e33725857
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 <evands@pidgin.im>
parents:
15729
diff
changeset
|
252 | * Get the current error status for an input. |
|
22526
4223bc1ce147
Document PurpleEventLoopUiOps and associated misc.
Will Thompson <resiak@pidgin.im>
parents:
20940
diff
changeset
|
253 | * |
|
15746
017e33725857
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 <evands@pidgin.im>
parents:
15729
diff
changeset
|
254 | * The return value and error follow getsockopt() with a level of SOL_SOCKET and an |
|
017e33725857
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 <evands@pidgin.im>
parents:
15729
diff
changeset
|
255 | * option name of SO_ERROR, and this is how the error is determined if the UI does not |
|
017e33725857
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 <evands@pidgin.im>
parents:
15729
diff
changeset
|
256 | * implement the input_get_error UI op. |
|
017e33725857
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 <evands@pidgin.im>
parents:
15729
diff
changeset
|
257 | * |
|
35397
31fa3a1aeff5
Move changes from soc.2013.gobjectification.gtkdoc to this branch
Ankit Vani <a@nevitus.org>
parents:
35393
diff
changeset
|
258 | * Returns: 0 if there is no error; -1 if there is an error, in which case |
|
31fa3a1aeff5
Move changes from soc.2013.gobjectification.gtkdoc to this branch
Ankit Vani <a@nevitus.org>
parents:
35393
diff
changeset
|
259 | * %errno will be set. |
|
15746
017e33725857
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 <evands@pidgin.im>
parents:
15729
diff
changeset
|
260 | */ |
|
017e33725857
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 <evands@pidgin.im>
parents:
15729
diff
changeset
|
261 | int |
| 15884 | 262 | purple_input_get_error(int fd, int *error); |
|
15746
017e33725857
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 <evands@pidgin.im>
parents:
15729
diff
changeset
|
263 | |
|
33291
b70ab10887a7
New custom resolver, that uses libpurple for DNS queries. Get rid of old win32 resolver. Refs#343. Fixes #6263
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
32787
diff
changeset
|
264 | /** |
|
35397
31fa3a1aeff5
Move changes from soc.2013.gobjectification.gtkdoc to this branch
Ankit Vani <a@nevitus.org>
parents:
35393
diff
changeset
|
265 | * purple_input_pipe: |
|
31fa3a1aeff5
Move changes from soc.2013.gobjectification.gtkdoc to this branch
Ankit Vani <a@nevitus.org>
parents:
35393
diff
changeset
|
266 | * @pipefd: Array used to return file descriptors for both ends of pipe. |
|
31fa3a1aeff5
Move changes from soc.2013.gobjectification.gtkdoc to this branch
Ankit Vani <a@nevitus.org>
parents:
35393
diff
changeset
|
267 | * |
|
33291
b70ab10887a7
New custom resolver, that uses libpurple for DNS queries. Get rid of old win32 resolver. Refs#343. Fixes #6263
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
32787
diff
changeset
|
268 | * Creates a pipe - an unidirectional data channel that can be used for |
|
b70ab10887a7
New custom resolver, that uses libpurple for DNS queries. Get rid of old win32 resolver. Refs#343. Fixes #6263
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
32787
diff
changeset
|
269 | * interprocess communication. |
|
b70ab10887a7
New custom resolver, that uses libpurple for DNS queries. Get rid of old win32 resolver. Refs#343. Fixes #6263
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
32787
diff
changeset
|
270 | * |
|
b70ab10887a7
New custom resolver, that uses libpurple for DNS queries. Get rid of old win32 resolver. Refs#343. Fixes #6263
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
32787
diff
changeset
|
271 | * File descriptors for both ends of pipe will be written into provided array. |
|
b70ab10887a7
New custom resolver, that uses libpurple for DNS queries. Get rid of old win32 resolver. Refs#343. Fixes #6263
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
32787
diff
changeset
|
272 | * The first one (pipefd[0]) can be used for reading, the second one (pipefd[1]) |
|
b70ab10887a7
New custom resolver, that uses libpurple for DNS queries. Get rid of old win32 resolver. Refs#343. Fixes #6263
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
32787
diff
changeset
|
273 | * for writing. |
|
b70ab10887a7
New custom resolver, that uses libpurple for DNS queries. Get rid of old win32 resolver. Refs#343. Fixes #6263
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
32787
diff
changeset
|
274 | * |
|
b70ab10887a7
New custom resolver, that uses libpurple for DNS queries. Get rid of old win32 resolver. Refs#343. Fixes #6263
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
32787
diff
changeset
|
275 | * On Windows it's simulated by creating a pair of connected sockets, on other |
|
b70ab10887a7
New custom resolver, that uses libpurple for DNS queries. Get rid of old win32 resolver. Refs#343. Fixes #6263
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
32787
diff
changeset
|
276 | * systems pipe() is used. |
|
b70ab10887a7
New custom resolver, that uses libpurple for DNS queries. Get rid of old win32 resolver. Refs#343. Fixes #6263
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
32787
diff
changeset
|
277 | * |
|
35397
31fa3a1aeff5
Move changes from soc.2013.gobjectification.gtkdoc to this branch
Ankit Vani <a@nevitus.org>
parents:
35393
diff
changeset
|
278 | * Returns: 0 on success, -1 on error. |
|
33291
b70ab10887a7
New custom resolver, that uses libpurple for DNS queries. Get rid of old win32 resolver. Refs#343. Fixes #6263
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
32787
diff
changeset
|
279 | */ |
|
b70ab10887a7
New custom resolver, that uses libpurple for DNS queries. Get rid of old win32 resolver. Refs#343. Fixes #6263
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
32787
diff
changeset
|
280 | int |
|
b70ab10887a7
New custom resolver, that uses libpurple for DNS queries. Get rid of old win32 resolver. Refs#343. Fixes #6263
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
32787
diff
changeset
|
281 | purple_input_pipe(int pipefd[2]); |
|
b70ab10887a7
New custom resolver, that uses libpurple for DNS queries. Get rid of old win32 resolver. Refs#343. Fixes #6263
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
32787
diff
changeset
|
282 | |
| 8273 | 283 | |
| 284 | /*@}*/ | |
| 285 | ||
| 286 | ||
| 287 | /**************************************************************************/ | |
| 288 | /** @name UI Registration Functions */ | |
| 289 | /**************************************************************************/ | |
| 290 | /*@{*/ | |
| 291 | /** | |
|
35397
31fa3a1aeff5
Move changes from soc.2013.gobjectification.gtkdoc to this branch
Ankit Vani <a@nevitus.org>
parents:
35393
diff
changeset
|
292 | * purple_eventloop_set_ui_ops: |
|
31fa3a1aeff5
Move changes from soc.2013.gobjectification.gtkdoc to this branch
Ankit Vani <a@nevitus.org>
parents:
35393
diff
changeset
|
293 | * @ops: The UI operations structure. |
| 8273 | 294 | * |
|
35397
31fa3a1aeff5
Move changes from soc.2013.gobjectification.gtkdoc to this branch
Ankit Vani <a@nevitus.org>
parents:
35393
diff
changeset
|
295 | * Sets the UI operations structure to be used for accounts. |
| 8273 | 296 | */ |
| 15884 | 297 | void purple_eventloop_set_ui_ops(PurpleEventLoopUiOps *ops); |
| 8273 | 298 | |
| 299 | /** | |
|
35397
31fa3a1aeff5
Move changes from soc.2013.gobjectification.gtkdoc to this branch
Ankit Vani <a@nevitus.org>
parents:
35393
diff
changeset
|
300 | * purple_eventloop_get_ui_ops: |
|
31fa3a1aeff5
Move changes from soc.2013.gobjectification.gtkdoc to this branch
Ankit Vani <a@nevitus.org>
parents:
35393
diff
changeset
|
301 | * |
| 8273 | 302 | * Returns the UI operations structure used for accounts. |
| 303 | * | |
|
35393
00f876b129bc
Initial replacements for gtk-doc style comments
Ankit Vani <a@nevitus.org>
parents:
35024
diff
changeset
|
304 | * Returns: The UI operations structure in use. |
| 8273 | 305 | */ |
| 15884 | 306 | PurpleEventLoopUiOps *purple_eventloop_get_ui_ops(void); |
| 8273 | 307 | |
| 308 | /*@}*/ | |
| 309 | ||
|
32787
7072f190d6ad
Use G_BEGIN/END_DECLS in public libpurple files. This was
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
32438
diff
changeset
|
310 | G_END_DECLS |
| 8273 | 311 | |
| 15884 | 312 | #endif /* _PURPLE_EVENTLOOP_H_ */ |