src/eventloop.h

Sun, 26 Dec 2004 00:46:26 +0000

author
Mark Doliner <markdoliner@pidgin.im>
date
Sun, 26 Dec 2004 00:46:26 +0000
changeset 10418
7b632343a29c
parent 10071
d2ba11541693
child 13747
26ce2a14d553
permissions
-rw-r--r--

[gaim-migrate @ 11669]
I split the status-saving code into it's own little API, because it
really is separate from the other status.c

savedstatuses.c sits on top of the rest of the status API.

And you can delete saved statuses now.

8273
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
1 /**
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
2 * @file eventloop.h Gaim Event Loop API
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
3 * @ingroup core
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
4 *
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
5 * gaim
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
6 *
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
7 * Gaim is the legal property of its developers, whose names are too numerous
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
8 * to list here. Please refer to the COPYRIGHT file distributed with this
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
9 * source distribution.
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
10 *
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
11 * This program is free software; you can redistribute it and/or modify
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
12 * it under the terms of the GNU General Public License as published by
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
13 * the Free Software Foundation; either version 2 of the License, or
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
14 * (at your option) any later version.
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
15 *
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
16 * This program is distributed in the hope that it will be useful,
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
19 * GNU General Public License for more details.
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
20 *
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
21 * You should have received a copy of the GNU General Public License
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
22 * along with this program; if not, write to the Free Software
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
23 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
24 */
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
25 #ifndef _GAIM_EVENTLOOP_H_
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
26 #define _GAIM_EVENTLOOP_H_
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
27
10023
6b0014040323 [gaim-migrate @ 10955]
Mark Doliner <markdoliner@pidgin.im>
parents: 10008
diff changeset
28 #include <glib.h>
8273
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
29
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
30 #ifdef __cplusplus
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
31 extern "C" {
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
32 #endif
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
33
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
34 /**
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
35 * An input condition.
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
36 */
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
37 typedef enum
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
38 {
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
39 GAIM_INPUT_READ = 1 << 0, /**< A read condition. */
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
40 GAIM_INPUT_WRITE = 1 << 1 /**< A write condition. */
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
41
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
42 } GaimInputCondition;
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
43
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
44 typedef void (*GaimInputFunction)(gpointer, gint, GaimInputCondition);
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
45
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
46 typedef struct _GaimEventLoopUiOps GaimEventLoopUiOps;
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
47
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
48 struct _GaimEventLoopUiOps
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
49 {
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
50 /**
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
51 * Creates a callback timer.
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
52 * @see g_timeout_add, gaim_timeout_add
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
53 **/
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
54 guint (*timeout_add)(guint interval, GSourceFunc function, gpointer data);
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
55
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
56 /**
8287
266eacc707ac [gaim-migrate @ 9011]
Scott Lamb
parents: 8280
diff changeset
57 * Removes a callback timer.
266eacc707ac [gaim-migrate @ 9011]
Scott Lamb
parents: 8280
diff changeset
58 * @see gaim_timeout_remove, g_source_remove
266eacc707ac [gaim-migrate @ 9011]
Scott Lamb
parents: 8280
diff changeset
59 */
266eacc707ac [gaim-migrate @ 9011]
Scott Lamb
parents: 8280
diff changeset
60 guint (*timeout_remove)(guint handle);
266eacc707ac [gaim-migrate @ 9011]
Scott Lamb
parents: 8280
diff changeset
61
266eacc707ac [gaim-migrate @ 9011]
Scott Lamb
parents: 8280
diff changeset
62 /**
8273
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
63 * Adds an input handler.
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
64 * @see gaim_input_add, g_io_add_watch_full
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
65 */
8280
f448633d3f3a [gaim-migrate @ 9004]
Scott Lamb
parents: 8273
diff changeset
66 guint (*input_add)(int fd, GaimInputCondition cond,
f448633d3f3a [gaim-migrate @ 9004]
Scott Lamb
parents: 8273
diff changeset
67 GaimInputFunction func, gpointer user_data);
8273
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
68
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
69 /**
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
70 * Removes an input handler.
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
71 * @see gaim_input_remove, g_source_remove
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
72 */
8797
378fe0e6c66d [gaim-migrate @ 9559]
Mark Doliner <markdoliner@pidgin.im>
parents: 8387
diff changeset
73 guint (*input_remove)(guint handle);
8273
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
74 };
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
75
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
76 /**************************************************************************/
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
77 /** @name Event Loop API */
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
78 /**************************************************************************/
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
79 /*@{*/
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
80 /**
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
81 * Creates a callback timer.
10071
d2ba11541693 [gaim-migrate @ 11047]
Jonathan Champ <royanee@users.sourceforge.net>
parents: 10023
diff changeset
82 * The timer will repeat until the function returns @c FALSE. The
8273
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
83 * first call will be at the end of the first interval.
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
84 * @param interval The time between calls of the function, in
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
85 * milliseconds.
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
86 * @param function The function to call.
10071
d2ba11541693 [gaim-migrate @ 11047]
Jonathan Champ <royanee@users.sourceforge.net>
parents: 10023
diff changeset
87 * @param data data to pass to @a function.
d2ba11541693 [gaim-migrate @ 11047]
Jonathan Champ <royanee@users.sourceforge.net>
parents: 10023
diff changeset
88 * @return A handle to the timer which can be passed to
d2ba11541693 [gaim-migrate @ 11047]
Jonathan Champ <royanee@users.sourceforge.net>
parents: 10023
diff changeset
89 * gaim_timeout_remove to remove the timer.
d2ba11541693 [gaim-migrate @ 11047]
Jonathan Champ <royanee@users.sourceforge.net>
parents: 10023
diff changeset
90 */
8273
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
91 guint gaim_timeout_add(guint interval, GSourceFunc function, gpointer data);
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
92
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
93 /**
8287
266eacc707ac [gaim-migrate @ 9011]
Scott Lamb
parents: 8280
diff changeset
94 * Removes a timeout handler.
266eacc707ac [gaim-migrate @ 9011]
Scott Lamb
parents: 8280
diff changeset
95 *
266eacc707ac [gaim-migrate @ 9011]
Scott Lamb
parents: 8280
diff changeset
96 * @param handle The handle, as returned by gaim_timeout_add.
8387
381fc8b4f8f7 [gaim-migrate @ 9115]
Christian Hammond <chipx86@chipx86.com>
parents: 8287
diff changeset
97 *
381fc8b4f8f7 [gaim-migrate @ 9115]
Christian Hammond <chipx86@chipx86.com>
parents: 8287
diff changeset
98 * @return Something.
8287
266eacc707ac [gaim-migrate @ 9011]
Scott Lamb
parents: 8280
diff changeset
99 */
8387
381fc8b4f8f7 [gaim-migrate @ 9115]
Christian Hammond <chipx86@chipx86.com>
parents: 8287
diff changeset
100 guint gaim_timeout_remove(guint handle);
8287
266eacc707ac [gaim-migrate @ 9011]
Scott Lamb
parents: 8280
diff changeset
101
266eacc707ac [gaim-migrate @ 9011]
Scott Lamb
parents: 8280
diff changeset
102 /**
8273
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
103 * Adds an input handler.
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
104 *
8280
f448633d3f3a [gaim-migrate @ 9004]
Scott Lamb
parents: 8273
diff changeset
105 * @param fd The input file descriptor.
8273
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
106 * @param cond The condition type.
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
107 * @param func The callback function for data.
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
108 * @param user_data User-specified data.
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
109 *
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
110 * @return The resulting handle.
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
111 * @see g_io_add_watch_full
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
112 */
8280
f448633d3f3a [gaim-migrate @ 9004]
Scott Lamb
parents: 8273
diff changeset
113 guint gaim_input_add(int fd, GaimInputCondition cond,
f448633d3f3a [gaim-migrate @ 9004]
Scott Lamb
parents: 8273
diff changeset
114 GaimInputFunction func, gpointer user_data);
8273
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
115
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
116 /**
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
117 * Removes an input handler.
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
118 *
8280
f448633d3f3a [gaim-migrate @ 9004]
Scott Lamb
parents: 8273
diff changeset
119 * @param handle The handle of the input handler. Note that this is the return
f448633d3f3a [gaim-migrate @ 9004]
Scott Lamb
parents: 8273
diff changeset
120 * value from gaim_input_add, <i>not</i> the file descriptor.
8273
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
121 */
8797
378fe0e6c66d [gaim-migrate @ 9559]
Mark Doliner <markdoliner@pidgin.im>
parents: 8387
diff changeset
122 guint gaim_input_remove(guint handle);
8273
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
123
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
124 /*@}*/
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
125
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
126
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
127 /**************************************************************************/
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
128 /** @name UI Registration Functions */
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
129 /**************************************************************************/
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
130 /*@{*/
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
131 /**
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
132 * Sets the UI operations structure to be used for accounts.
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
133 *
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
134 * @param ops The UI operations structure.
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
135 */
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
136 void gaim_eventloop_set_ui_ops(GaimEventLoopUiOps *ops);
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
137
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
138 /**
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
139 * Returns the UI operations structure used for accounts.
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
140 *
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
141 * @return The UI operations structure in use.
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
142 */
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
143 GaimEventLoopUiOps *gaim_eventloop_get_ui_ops(void);
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
144
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
145 /*@}*/
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
146
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
147 #ifdef __cplusplus
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
148 }
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
149 #endif
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
150
7882af5843e9 [gaim-migrate @ 8997]
Scott Lamb
parents:
diff changeset
151 #endif /* _GAIM_EVENTLOOP_H_ */

mercurial