1 | /* GIO - GLib Input, Output and Streaming Library |
2 | * |
3 | * Copyright (C) 2006-2007 Red Hat, Inc. |
4 | * |
5 | * This library is free software; you can redistribute it and/or |
6 | * modify it under the terms of the GNU Lesser General Public |
7 | * License as published by the Free Software Foundation; either |
8 | * version 2.1 of the License, or (at your option) any later version. |
9 | * |
10 | * This library is distributed in the hope that it will be useful, |
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
13 | * Lesser General Public License for more details. |
14 | * |
15 | * You should have received a copy of the GNU Lesser General |
16 | * Public License along with this library; if not, see <http://www.gnu.org/licenses/>. |
17 | * |
18 | * Author: Alexander Larsson <[email protected]> |
19 | */ |
20 | |
21 | #ifndef __GIO_TYPES_H__ |
22 | #define __GIO_TYPES_H__ |
23 | |
24 | #if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) |
25 | #error "Only <gio/gio.h> can be included directly." |
26 | #endif |
27 | |
28 | #include <gio/gioenums.h> |
29 | |
30 | G_BEGIN_DECLS |
31 | |
32 | typedef struct _GAppLaunchContext GAppLaunchContext; |
33 | typedef struct _GAppInfo GAppInfo; /* Dummy typedef */ |
34 | typedef struct _GAsyncResult GAsyncResult; /* Dummy typedef */ |
35 | typedef struct _GAsyncInitable GAsyncInitable; |
36 | typedef struct _GBufferedInputStream GBufferedInputStream; |
37 | typedef struct _GBufferedOutputStream GBufferedOutputStream; |
38 | typedef struct _GCancellable GCancellable; |
39 | typedef struct _GCharsetConverter GCharsetConverter; |
40 | typedef struct _GConverter GConverter; |
41 | typedef struct _GConverterInputStream GConverterInputStream; |
42 | typedef struct _GConverterOutputStream GConverterOutputStream; |
43 | typedef struct _GDatagramBased GDatagramBased; |
44 | typedef struct _GDataInputStream GDataInputStream; |
45 | typedef struct _GSimplePermission GSimplePermission; |
46 | typedef struct _GZlibCompressor GZlibCompressor; |
47 | typedef struct _GZlibDecompressor GZlibDecompressor; |
48 | |
49 | typedef struct _GSimpleActionGroup GSimpleActionGroup; |
50 | typedef struct _GRemoteActionGroup GRemoteActionGroup; |
51 | typedef struct _GDBusActionGroup GDBusActionGroup; |
52 | typedef struct _GActionMap GActionMap; |
53 | typedef struct _GActionGroup GActionGroup; |
54 | typedef struct _GPropertyAction GPropertyAction; |
55 | typedef struct _GSimpleAction GSimpleAction; |
56 | typedef struct _GAction GAction; |
57 | typedef struct _GApplication GApplication; |
58 | typedef struct _GApplicationCommandLine GApplicationCommandLine; |
59 | typedef struct _GSettingsBackend GSettingsBackend; |
60 | typedef struct _GSettings GSettings; |
61 | typedef struct _GPermission GPermission; |
62 | |
63 | typedef struct _GMenuModel ; |
64 | typedef struct _GNotification GNotification; |
65 | |
66 | /** |
67 | * GDrive: |
68 | * |
69 | * Opaque drive object. |
70 | **/ |
71 | typedef struct _GDrive GDrive; /* Dummy typedef */ |
72 | typedef struct _GFileEnumerator GFileEnumerator; |
73 | typedef struct _GFileMonitor GFileMonitor; |
74 | typedef struct _GFilterInputStream GFilterInputStream; |
75 | typedef struct _GFilterOutputStream GFilterOutputStream; |
76 | |
77 | /** |
78 | * GFile: |
79 | * |
80 | * A handle to an object implementing the #GFileIface interface. |
81 | * Generally stores a location within the file system. Handles do not |
82 | * necessarily represent files or directories that currently exist. |
83 | **/ |
84 | typedef struct _GFile GFile; /* Dummy typedef */ |
85 | typedef struct _GFileInfo GFileInfo; |
86 | |
87 | /** |
88 | * GFileAttributeMatcher: |
89 | * |
90 | * Determines if a string matches a file attribute. |
91 | **/ |
92 | typedef struct _GFileAttributeMatcher GFileAttributeMatcher; |
93 | typedef struct _GFileAttributeInfo GFileAttributeInfo; |
94 | typedef struct _GFileAttributeInfoList GFileAttributeInfoList; |
95 | typedef struct _GFileDescriptorBased GFileDescriptorBased; |
96 | typedef struct _GFileInputStream GFileInputStream; |
97 | typedef struct _GFileOutputStream GFileOutputStream; |
98 | typedef struct _GFileIOStream GFileIOStream; |
99 | typedef struct _GFileIcon GFileIcon; |
100 | typedef struct _GFilenameCompleter GFilenameCompleter; |
101 | |
102 | |
103 | typedef struct _GIcon GIcon; /* Dummy typedef */ |
104 | typedef struct _GInetAddress GInetAddress; |
105 | typedef struct _GInetAddressMask GInetAddressMask; |
106 | typedef struct _GInetSocketAddress GInetSocketAddress; |
107 | typedef struct _GNativeSocketAddress GNativeSocketAddress; |
108 | typedef struct _GInputStream GInputStream; |
109 | typedef struct _GInitable GInitable; |
110 | typedef struct _GIOModule GIOModule; |
111 | typedef struct _GIOExtensionPoint GIOExtensionPoint; |
112 | typedef struct _GIOExtension GIOExtension; |
113 | |
114 | /** |
115 | * GIOSchedulerJob: |
116 | * |
117 | * Opaque class for defining and scheduling IO jobs. |
118 | **/ |
119 | typedef struct _GIOSchedulerJob GIOSchedulerJob; |
120 | typedef struct _GIOStreamAdapter GIOStreamAdapter; |
121 | typedef struct _GLoadableIcon GLoadableIcon; /* Dummy typedef */ |
122 | typedef struct _GBytesIcon GBytesIcon; |
123 | typedef struct _GMemoryInputStream GMemoryInputStream; |
124 | typedef struct _GMemoryOutputStream GMemoryOutputStream; |
125 | |
126 | /** |
127 | * GMount: |
128 | * |
129 | * A handle to an object implementing the #GMountIface interface. |
130 | **/ |
131 | typedef struct _GMount GMount; /* Dummy typedef */ |
132 | typedef struct _GMountOperation GMountOperation; |
133 | typedef struct _GNetworkAddress GNetworkAddress; |
134 | typedef struct _GNetworkMonitor GNetworkMonitor; |
135 | typedef struct _GNetworkService GNetworkService; |
136 | typedef struct _GOutputStream GOutputStream; |
137 | typedef struct _GIOStream GIOStream; |
138 | typedef struct _GSimpleIOStream GSimpleIOStream; |
139 | typedef struct _GPollableInputStream GPollableInputStream; /* Dummy typedef */ |
140 | typedef struct _GPollableOutputStream GPollableOutputStream; /* Dummy typedef */ |
141 | typedef struct _GResolver GResolver; |
142 | |
143 | /** |
144 | * GResource: |
145 | * |
146 | * A resource bundle. |
147 | * |
148 | * Since: 2.32 |
149 | */ |
150 | typedef struct _GResource GResource; |
151 | typedef struct _GSeekable GSeekable; |
152 | typedef struct _GSimpleAsyncResult GSimpleAsyncResult; |
153 | |
154 | /** |
155 | * GSocket: |
156 | * |
157 | * A lowlevel network socket object. |
158 | * |
159 | * Since: 2.22 |
160 | **/ |
161 | typedef struct _GSocket GSocket; |
162 | |
163 | /** |
164 | * GSocketControlMessage: |
165 | * |
166 | * Base class for socket-type specific control messages that can be sent and |
167 | * received over #GSocket. |
168 | **/ |
169 | typedef struct _GSocketControlMessage GSocketControlMessage; |
170 | /** |
171 | * GSocketClient: |
172 | * |
173 | * A helper class for network clients to make connections. |
174 | * |
175 | * Since: 2.22 |
176 | **/ |
177 | typedef struct _GSocketClient GSocketClient; |
178 | /** |
179 | * GSocketConnection: |
180 | * |
181 | * A socket connection GIOStream object for connection-oriented sockets. |
182 | * |
183 | * Since: 2.22 |
184 | **/ |
185 | typedef struct _GSocketConnection GSocketConnection; |
186 | /** |
187 | * GSocketListener: |
188 | * |
189 | * A helper class for network servers to listen for and accept connections. |
190 | * |
191 | * Since: 2.22 |
192 | **/ |
193 | typedef struct _GSocketListener GSocketListener; |
194 | /** |
195 | * GSocketService: |
196 | * |
197 | * A helper class for handling accepting incomming connections in the |
198 | * glib mainloop. |
199 | * |
200 | * Since: 2.22 |
201 | **/ |
202 | typedef struct _GSocketService GSocketService; |
203 | typedef struct _GSocketAddress GSocketAddress; |
204 | typedef struct _GSocketAddressEnumerator GSocketAddressEnumerator; |
205 | typedef struct _GSocketConnectable GSocketConnectable; |
206 | typedef struct _GSrvTarget GSrvTarget; |
207 | typedef struct _GTask GTask; |
208 | /** |
209 | * GTcpConnection: |
210 | * |
211 | * A #GSocketConnection for TCP/IP connections. |
212 | * |
213 | * Since: 2.22 |
214 | **/ |
215 | typedef struct _GTcpConnection GTcpConnection; |
216 | typedef struct _GTcpWrapperConnection GTcpWrapperConnection; |
217 | /** |
218 | * GThreadedSocketService: |
219 | * |
220 | * A helper class for handling accepting incoming connections in the |
221 | * glib mainloop and handling them in a thread. |
222 | * |
223 | * Since: 2.22 |
224 | **/ |
225 | typedef struct _GThreadedSocketService GThreadedSocketService; |
226 | typedef struct _GDtlsConnection GDtlsConnection; |
227 | typedef struct _GDtlsClientConnection GDtlsClientConnection; /* Dummy typedef */ |
228 | typedef struct _GDtlsServerConnection GDtlsServerConnection; /* Dummy typedef */ |
229 | typedef struct _GThemedIcon GThemedIcon; |
230 | typedef struct _GTlsCertificate GTlsCertificate; |
231 | typedef struct _GTlsClientConnection GTlsClientConnection; /* Dummy typedef */ |
232 | typedef struct _GTlsConnection GTlsConnection; |
233 | typedef struct _GTlsDatabase GTlsDatabase; |
234 | typedef struct _GTlsFileDatabase GTlsFileDatabase; |
235 | typedef struct _GTlsInteraction GTlsInteraction; |
236 | typedef struct _GTlsPassword GTlsPassword; |
237 | typedef struct _GTlsServerConnection GTlsServerConnection; /* Dummy typedef */ |
238 | typedef struct _GVfs GVfs; /* Dummy typedef */ |
239 | |
240 | /** |
241 | * GProxyResolver: |
242 | * |
243 | * A helper class to enumerate proxies base on URI. |
244 | * |
245 | * Since: 2.26 |
246 | **/ |
247 | typedef struct _GProxyResolver GProxyResolver; |
248 | typedef struct _GProxy GProxy; |
249 | typedef struct _GProxyAddress GProxyAddress; |
250 | typedef struct _GProxyAddressEnumerator GProxyAddressEnumerator; |
251 | |
252 | /** |
253 | * GVolume: |
254 | * |
255 | * Opaque mountable volume object. |
256 | **/ |
257 | typedef struct _GVolume GVolume; /* Dummy typedef */ |
258 | typedef struct _GVolumeMonitor GVolumeMonitor; |
259 | |
260 | /** |
261 | * GAsyncReadyCallback: |
262 | * @source_object: (nullable): the object the asynchronous operation was started with. |
263 | * @res: a #GAsyncResult. |
264 | * @user_data: user data passed to the callback. |
265 | * |
266 | * Type definition for a function that will be called back when an asynchronous |
267 | * operation within GIO has been completed. #GAsyncReadyCallback |
268 | * callbacks from #GTask are guaranteed to be invoked in a later |
269 | * iteration of the |
270 | * [thread-default main context][g-main-context-push-thread-default] |
271 | * where the #GTask was created. All other users of |
272 | * #GAsyncReadyCallback must likewise call it asynchronously in a |
273 | * later iteration of the main context. |
274 | **/ |
275 | typedef void (*GAsyncReadyCallback) (GObject *source_object, |
276 | GAsyncResult *res, |
277 | gpointer user_data); |
278 | |
279 | /** |
280 | * GFileProgressCallback: |
281 | * @current_num_bytes: the current number of bytes in the operation. |
282 | * @total_num_bytes: the total number of bytes in the operation. |
283 | * @user_data: user data passed to the callback. |
284 | * |
285 | * When doing file operations that may take a while, such as moving |
286 | * a file or copying a file, a progress callback is used to pass how |
287 | * far along that operation is to the application. |
288 | **/ |
289 | typedef void (*GFileProgressCallback) (goffset current_num_bytes, |
290 | goffset total_num_bytes, |
291 | gpointer user_data); |
292 | |
293 | /** |
294 | * GFileReadMoreCallback: |
295 | * @file_contents: the data as currently read. |
296 | * @file_size: the size of the data currently read. |
297 | * @callback_data: (closure): data passed to the callback. |
298 | * |
299 | * When loading the partial contents of a file with g_file_load_partial_contents_async(), |
300 | * it may become necessary to determine if any more data from the file should be loaded. |
301 | * A #GFileReadMoreCallback function facilitates this by returning %TRUE if more data |
302 | * should be read, or %FALSE otherwise. |
303 | * |
304 | * Returns: %TRUE if more data should be read back. %FALSE otherwise. |
305 | **/ |
306 | typedef gboolean (* GFileReadMoreCallback) (const char *file_contents, |
307 | goffset file_size, |
308 | gpointer callback_data); |
309 | |
310 | /** |
311 | * GFileMeasureProgressCallback: |
312 | * @reporting: %TRUE if more reports will come |
313 | * @current_size: the current cumulative size measurement |
314 | * @num_dirs: the number of directories visited so far |
315 | * @num_files: the number of non-directory files encountered |
316 | * @user_data: the data passed to the original request for this callback |
317 | * |
318 | * This callback type is used by g_file_measure_disk_usage() to make |
319 | * periodic progress reports when measuring the amount of disk spaced |
320 | * used by a directory. |
321 | * |
322 | * These calls are made on a best-effort basis and not all types of |
323 | * #GFile will support them. At the minimum, however, one call will |
324 | * always be made immediately. |
325 | * |
326 | * In the case that there is no support, @reporting will be set to |
327 | * %FALSE (and the other values undefined) and no further calls will be |
328 | * made. Otherwise, the @reporting will be %TRUE and the other values |
329 | * all-zeros during the first (immediate) call. In this way, you can |
330 | * know which type of progress UI to show without a delay. |
331 | * |
332 | * For g_file_measure_disk_usage() the callback is made directly. For |
333 | * g_file_measure_disk_usage_async() the callback is made via the |
334 | * default main context of the calling thread (ie: the same way that the |
335 | * final async result would be reported). |
336 | * |
337 | * @current_size is in the same units as requested by the operation (see |
338 | * %G_FILE_DISK_USAGE_APPARENT_SIZE). |
339 | * |
340 | * The frequency of the updates is implementation defined, but is |
341 | * ideally about once every 200ms. |
342 | * |
343 | * The last progress callback may or may not be equal to the final |
344 | * result. Always check the async result to get the final value. |
345 | * |
346 | * Since: 2.38 |
347 | **/ |
348 | typedef void (* GFileMeasureProgressCallback) (gboolean reporting, |
349 | guint64 current_size, |
350 | guint64 num_dirs, |
351 | guint64 num_files, |
352 | gpointer user_data); |
353 | |
354 | /** |
355 | * GIOSchedulerJobFunc: |
356 | * @job: a #GIOSchedulerJob. |
357 | * @cancellable: optional #GCancellable object, %NULL to ignore. |
358 | * @user_data: the data to pass to callback function |
359 | * |
360 | * I/O Job function. |
361 | * |
362 | * Long-running jobs should periodically check the @cancellable |
363 | * to see if they have been cancelled. |
364 | * |
365 | * Returns: %TRUE if this function should be called again to |
366 | * complete the job, %FALSE if the job is complete (or cancelled) |
367 | **/ |
368 | typedef gboolean (*GIOSchedulerJobFunc) (GIOSchedulerJob *job, |
369 | GCancellable *cancellable, |
370 | gpointer user_data); |
371 | |
372 | /** |
373 | * GSimpleAsyncThreadFunc: |
374 | * @res: a #GSimpleAsyncResult. |
375 | * @object: a #GObject. |
376 | * @cancellable: optional #GCancellable object, %NULL to ignore. |
377 | * |
378 | * Simple thread function that runs an asynchronous operation and |
379 | * checks for cancellation. |
380 | **/ |
381 | typedef void (*GSimpleAsyncThreadFunc) (GSimpleAsyncResult *res, |
382 | GObject *object, |
383 | GCancellable *cancellable); |
384 | |
385 | /** |
386 | * GSocketSourceFunc: |
387 | * @socket: the #GSocket |
388 | * @condition: the current condition at the source fired. |
389 | * @user_data: data passed in by the user. |
390 | * |
391 | * This is the function type of the callback used for the #GSource |
392 | * returned by g_socket_create_source(). |
393 | * |
394 | * Returns: it should return %FALSE if the source should be removed. |
395 | * |
396 | * Since: 2.22 |
397 | */ |
398 | typedef gboolean (*GSocketSourceFunc) (GSocket *socket, |
399 | GIOCondition condition, |
400 | gpointer user_data); |
401 | |
402 | /** |
403 | * GDatagramBasedSourceFunc: |
404 | * @datagram_based: the #GDatagramBased |
405 | * @condition: the current condition at the source fired |
406 | * @user_data: data passed in by the user |
407 | * |
408 | * This is the function type of the callback used for the #GSource |
409 | * returned by g_datagram_based_create_source(). |
410 | * |
411 | * Returns: %G_SOURCE_REMOVE if the source should be removed, |
412 | * %G_SOURCE_CONTINUE otherwise |
413 | * |
414 | * Since: 2.48 |
415 | */ |
416 | typedef gboolean (*GDatagramBasedSourceFunc) (GDatagramBased *datagram_based, |
417 | GIOCondition condition, |
418 | gpointer user_data); |
419 | |
420 | /** |
421 | * GInputVector: |
422 | * @buffer: Pointer to a buffer where data will be written. |
423 | * @size: the available size in @buffer. |
424 | * |
425 | * Structure used for scatter/gather data input. |
426 | * You generally pass in an array of #GInputVectors |
427 | * and the operation will store the read data starting in the |
428 | * first buffer, switching to the next as needed. |
429 | * |
430 | * Since: 2.22 |
431 | */ |
432 | typedef struct _GInputVector GInputVector; |
433 | |
434 | struct _GInputVector { |
435 | gpointer buffer; |
436 | gsize size; |
437 | }; |
438 | |
439 | /** |
440 | * GInputMessage: |
441 | * @address: (optional) (out) (transfer full): return location |
442 | * for a #GSocketAddress, or %NULL |
443 | * @vectors: (array length=num_vectors) (out): pointer to an |
444 | * array of input vectors |
445 | * @num_vectors: the number of input vectors pointed to by @vectors |
446 | * @bytes_received: (out): will be set to the number of bytes that have been |
447 | * received |
448 | * @flags: (out): collection of #GSocketMsgFlags for the received message, |
449 | * outputted by the call |
450 | * @control_messages: (array length=num_control_messages) (optional) |
451 | * (out) (transfer full): return location for a |
452 | * caller-allocated array of #GSocketControlMessages, or %NULL |
453 | * @num_control_messages: (out) (optional): return location for the number of |
454 | * elements in @control_messages |
455 | * |
456 | * Structure used for scatter/gather data input when receiving multiple |
457 | * messages or packets in one go. You generally pass in an array of empty |
458 | * #GInputVectors and the operation will use all the buffers as if they |
459 | * were one buffer, and will set @bytes_received to the total number of bytes |
460 | * received across all #GInputVectors. |
461 | * |
462 | * This structure closely mirrors `struct mmsghdr` and `struct msghdr` from |
463 | * the POSIX sockets API (see `man 2 recvmmsg`). |
464 | * |
465 | * If @address is non-%NULL then it is set to the source address the message |
466 | * was received from, and the caller must free it afterwards. |
467 | * |
468 | * If @control_messages is non-%NULL then it is set to an array of control |
469 | * messages received with the message (if any), and the caller must free it |
470 | * afterwards. @num_control_messages is set to the number of elements in |
471 | * this array, which may be zero. |
472 | * |
473 | * Flags relevant to this message will be returned in @flags. For example, |
474 | * `MSG_EOR` or `MSG_TRUNC`. |
475 | * |
476 | * Since: 2.48 |
477 | */ |
478 | typedef struct _GInputMessage GInputMessage; |
479 | |
480 | struct _GInputMessage { |
481 | GSocketAddress **address; |
482 | |
483 | GInputVector *vectors; |
484 | guint num_vectors; |
485 | |
486 | gsize bytes_received; |
487 | gint flags; |
488 | |
489 | GSocketControlMessage ***control_messages; |
490 | guint *num_control_messages; |
491 | }; |
492 | |
493 | /** |
494 | * GOutputVector: |
495 | * @buffer: Pointer to a buffer of data to read. |
496 | * @size: the size of @buffer. |
497 | * |
498 | * Structure used for scatter/gather data output. |
499 | * You generally pass in an array of #GOutputVectors |
500 | * and the operation will use all the buffers as if they were |
501 | * one buffer. |
502 | * |
503 | * Since: 2.22 |
504 | */ |
505 | typedef struct _GOutputVector GOutputVector; |
506 | |
507 | struct _GOutputVector { |
508 | gconstpointer buffer; |
509 | gsize size; |
510 | }; |
511 | |
512 | /** |
513 | * GOutputMessage: |
514 | * @address: (nullable): a #GSocketAddress, or %NULL |
515 | * @vectors: pointer to an array of output vectors |
516 | * @num_vectors: the number of output vectors pointed to by @vectors. |
517 | * @bytes_sent: initialize to 0. Will be set to the number of bytes |
518 | * that have been sent |
519 | * @control_messages: (array length=num_control_messages) (nullable): a pointer |
520 | * to an array of #GSocketControlMessages, or %NULL. |
521 | * @num_control_messages: number of elements in @control_messages. |
522 | * |
523 | * Structure used for scatter/gather data output when sending multiple |
524 | * messages or packets in one go. You generally pass in an array of |
525 | * #GOutputVectors and the operation will use all the buffers as if they |
526 | * were one buffer. |
527 | * |
528 | * If @address is %NULL then the message is sent to the default receiver |
529 | * (as previously set by g_socket_connect()). |
530 | * |
531 | * Since: 2.44 |
532 | */ |
533 | typedef struct _GOutputMessage GOutputMessage; |
534 | |
535 | struct _GOutputMessage { |
536 | GSocketAddress *address; |
537 | |
538 | GOutputVector *vectors; |
539 | guint num_vectors; |
540 | |
541 | guint bytes_sent; |
542 | |
543 | GSocketControlMessage **control_messages; |
544 | guint num_control_messages; |
545 | }; |
546 | |
547 | typedef struct _GCredentials GCredentials; |
548 | typedef struct _GUnixCredentialsMessage GUnixCredentialsMessage; |
549 | typedef struct _GUnixFDList GUnixFDList; |
550 | typedef struct _GDBusMessage GDBusMessage; |
551 | typedef struct _GDBusConnection GDBusConnection; |
552 | typedef struct _GDBusProxy GDBusProxy; |
553 | typedef struct _GDBusMethodInvocation GDBusMethodInvocation; |
554 | typedef struct _GDBusServer GDBusServer; |
555 | typedef struct _GDBusAuthObserver GDBusAuthObserver; |
556 | typedef struct _GDBusErrorEntry GDBusErrorEntry; |
557 | typedef struct _GDBusInterfaceVTable GDBusInterfaceVTable; |
558 | typedef struct _GDBusSubtreeVTable GDBusSubtreeVTable; |
559 | typedef struct _GDBusAnnotationInfo GDBusAnnotationInfo; |
560 | typedef struct _GDBusArgInfo GDBusArgInfo; |
561 | typedef struct _GDBusMethodInfo GDBusMethodInfo; |
562 | typedef struct _GDBusSignalInfo GDBusSignalInfo; |
563 | typedef struct _GDBusPropertyInfo GDBusPropertyInfo; |
564 | typedef struct _GDBusInterfaceInfo GDBusInterfaceInfo; |
565 | typedef struct _GDBusNodeInfo GDBusNodeInfo; |
566 | |
567 | /** |
568 | * GCancellableSourceFunc: |
569 | * @cancellable: the #GCancellable |
570 | * @user_data: data passed in by the user. |
571 | * |
572 | * This is the function type of the callback used for the #GSource |
573 | * returned by g_cancellable_source_new(). |
574 | * |
575 | * Returns: it should return %FALSE if the source should be removed. |
576 | * |
577 | * Since: 2.28 |
578 | */ |
579 | typedef gboolean (*GCancellableSourceFunc) (GCancellable *cancellable, |
580 | gpointer user_data); |
581 | |
582 | /** |
583 | * GPollableSourceFunc: |
584 | * @pollable_stream: the #GPollableInputStream or #GPollableOutputStream |
585 | * @user_data: data passed in by the user. |
586 | * |
587 | * This is the function type of the callback used for the #GSource |
588 | * returned by g_pollable_input_stream_create_source() and |
589 | * g_pollable_output_stream_create_source(). |
590 | * |
591 | * Returns: it should return %FALSE if the source should be removed. |
592 | * |
593 | * Since: 2.28 |
594 | */ |
595 | typedef gboolean (*GPollableSourceFunc) (GObject *pollable_stream, |
596 | gpointer user_data); |
597 | |
598 | typedef struct _GDBusInterface GDBusInterface; /* Dummy typedef */ |
599 | typedef struct _GDBusInterfaceSkeleton GDBusInterfaceSkeleton; |
600 | typedef struct _GDBusObject GDBusObject; /* Dummy typedef */ |
601 | typedef struct _GDBusObjectSkeleton GDBusObjectSkeleton; |
602 | typedef struct _GDBusObjectProxy GDBusObjectProxy; |
603 | typedef struct _GDBusObjectManager GDBusObjectManager; /* Dummy typedef */ |
604 | typedef struct _GDBusObjectManagerClient GDBusObjectManagerClient; |
605 | typedef struct _GDBusObjectManagerServer GDBusObjectManagerServer; |
606 | |
607 | /** |
608 | * GDBusProxyTypeFunc: |
609 | * @manager: A #GDBusObjectManagerClient. |
610 | * @object_path: The object path of the remote object. |
611 | * @interface_name: (nullable): The interface name of the remote object or %NULL if a #GDBusObjectProxy #GType is requested. |
612 | * @user_data: User data. |
613 | * |
614 | * Function signature for a function used to determine the #GType to |
615 | * use for an interface proxy (if @interface_name is not %NULL) or |
616 | * object proxy (if @interface_name is %NULL). |
617 | * |
618 | * This function is called in the |
619 | * [thread-default main loop][g-main-context-push-thread-default] |
620 | * that @manager was constructed in. |
621 | * |
622 | * Returns: A #GType to use for the remote object. The returned type |
623 | * must be a #GDBusProxy or #GDBusObjectProxy -derived |
624 | * type. |
625 | * |
626 | * Since: 2.30 |
627 | */ |
628 | typedef GType (*GDBusProxyTypeFunc) (GDBusObjectManagerClient *manager, |
629 | const gchar *object_path, |
630 | const gchar *interface_name, |
631 | gpointer user_data); |
632 | |
633 | typedef struct _GTestDBus GTestDBus; |
634 | |
635 | /** |
636 | * GSubprocess: |
637 | * |
638 | * A child process. |
639 | * |
640 | * Since: 2.40 |
641 | */ |
642 | typedef struct _GSubprocess GSubprocess; |
643 | /** |
644 | * GSubprocessLauncher: |
645 | * |
646 | * Options for launching a child process. |
647 | * |
648 | * Since: 2.40 |
649 | */ |
650 | typedef struct _GSubprocessLauncher GSubprocessLauncher; |
651 | |
652 | G_END_DECLS |
653 | |
654 | #endif /* __GIO_TYPES_H__ */ |
655 | |