1 /*
2  * This file is part of gtkD.
3  *
4  * gtkD is free software; you can redistribute it and/or modify
5  * it under the terms of the GNU Lesser General Public License
6  * as published by the Free Software Foundation; either version 3
7  * of the License, or (at your option) any later version, with
8  * some exceptions, please read the COPYING file.
9  *
10  * gtkD 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
13  * GNU Lesser General Public License for more details.
14  *
15  * You should have received a copy of the GNU Lesser General Public License
16  * along with gtkD; if not, write to the Free Software
17  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110, USA
18  */
19 
20 // generated automatically - do not change
21 // find conversion definition on APILookup.txt
22 // implement new conversion functionalities on the wrap.utils pakage
23 
24 
25 module gio.c.types;
26 
27 public import glib.c.types;
28 public import gobject.c.types;
29 
30 
31 /**
32  * Flags used when creating a #GAppInfo.
33  */
34 public enum GAppInfoCreateFlags
35 {
36 	/**
37 	 * No flags.
38 	 */
39 	NONE = 0,
40 	/**
41 	 * Application opens in a terminal window.
42 	 */
43 	NEEDS_TERMINAL = 1,
44 	/**
45 	 * Application supports URI arguments.
46 	 */
47 	SUPPORTS_URIS = 2,
48 	/**
49 	 * Application supports startup notification. Since 2.26
50 	 */
51 	SUPPORTS_STARTUP_NOTIFICATION = 4,
52 }
53 alias GAppInfoCreateFlags AppInfoCreateFlags;
54 
55 /**
56  * Flags used to define the behaviour of a #GApplication.
57  *
58  * Since: 2.28
59  */
60 public enum GApplicationFlags
61 {
62 	/**
63 	 * Default
64 	 */
65 	FLAGS_NONE = 0,
66 	/**
67 	 * Run as a service. In this mode, registration
68 	 * fails if the service is already running, and the application
69 	 * will initially wait up to 10 seconds for an initial activation
70 	 * message to arrive.
71 	 */
72 	IS_SERVICE = 1,
73 	/**
74 	 * Don't try to become the primary instance.
75 	 */
76 	IS_LAUNCHER = 2,
77 	/**
78 	 * This application handles opening files (in
79 	 * the primary instance). Note that this flag only affects the default
80 	 * implementation of local_command_line(), and has no effect if
81 	 * %G_APPLICATION_HANDLES_COMMAND_LINE is given.
82 	 * See g_application_run() for details.
83 	 */
84 	HANDLES_OPEN = 4,
85 	/**
86 	 * This application handles command line
87 	 * arguments (in the primary instance). Note that this flag only affect
88 	 * the default implementation of local_command_line().
89 	 * See g_application_run() for details.
90 	 */
91 	HANDLES_COMMAND_LINE = 8,
92 	/**
93 	 * Send the environment of the
94 	 * launching process to the primary instance. Set this flag if your
95 	 * application is expected to behave differently depending on certain
96 	 * environment variables. For instance, an editor might be expected
97 	 * to use the `GIT_COMMITTER_NAME` environment variable
98 	 * when editing a git commit message. The environment is available
99 	 * to the #GApplication::command-line signal handler, via
100 	 * g_application_command_line_getenv().
101 	 */
102 	SEND_ENVIRONMENT = 16,
103 	/**
104 	 * Make no attempts to do any of the typical
105 	 * single-instance application negotiation, even if the application
106 	 * ID is given.  The application neither attempts to become the
107 	 * owner of the application ID nor does it check if an existing
108 	 * owner already exists.  Everything occurs in the local process.
109 	 * Since: 2.30.
110 	 */
111 	NON_UNIQUE = 32,
112 	/**
113 	 * Allow users to override the
114 	 * application ID from the command line with `--gapplication-app-id`.
115 	 * Since: 2.48
116 	 */
117 	CAN_OVERRIDE_APP_ID = 64,
118 	/**
119 	 * Allow another instance to take over
120 	 * the bus name. Since: 2.60
121 	 */
122 	ALLOW_REPLACEMENT = 128,
123 	/**
124 	 * Take over from another instance. This flag is
125 	 * usually set by passing `--gapplication-replace` on the commandline.
126 	 * Since: 2.60
127 	 */
128 	REPLACE = 256,
129 }
130 alias GApplicationFlags ApplicationFlags;
131 
132 /**
133  * #GAskPasswordFlags are used to request specific information from the
134  * user, or to notify the user of their choices in an authentication
135  * situation.
136  */
137 public enum GAskPasswordFlags
138 {
139 	/**
140 	 * operation requires a password.
141 	 */
142 	NEED_PASSWORD = 1,
143 	/**
144 	 * operation requires a username.
145 	 */
146 	NEED_USERNAME = 2,
147 	/**
148 	 * operation requires a domain.
149 	 */
150 	NEED_DOMAIN = 4,
151 	/**
152 	 * operation supports saving settings.
153 	 */
154 	SAVING_SUPPORTED = 8,
155 	/**
156 	 * operation supports anonymous users.
157 	 */
158 	ANONYMOUS_SUPPORTED = 16,
159 	/**
160 	 * operation takes TCRYPT parameters (Since: 2.58)
161 	 */
162 	TCRYPT = 32,
163 }
164 alias GAskPasswordFlags AskPasswordFlags;
165 
166 /**
167  * Flags used in g_bus_own_name().
168  *
169  * Since: 2.26
170  */
171 public enum GBusNameOwnerFlags
172 {
173 	/**
174 	 * No flags set.
175 	 */
176 	NONE = 0,
177 	/**
178 	 * Allow another message bus connection to claim the name.
179 	 */
180 	ALLOW_REPLACEMENT = 1,
181 	/**
182 	 * If another message bus connection owns the name and have
183 	 * specified #G_BUS_NAME_OWNER_FLAGS_ALLOW_REPLACEMENT, then take the name from the other connection.
184 	 */
185 	REPLACE = 2,
186 	/**
187 	 * If another message bus connection owns the name, immediately
188 	 * return an error from g_bus_own_name() rather than entering the waiting queue for that name. (Since 2.54)
189 	 */
190 	DO_NOT_QUEUE = 4,
191 }
192 alias GBusNameOwnerFlags BusNameOwnerFlags;
193 
194 /**
195  * Flags used in g_bus_watch_name().
196  *
197  * Since: 2.26
198  */
199 public enum GBusNameWatcherFlags
200 {
201 	/**
202 	 * No flags set.
203 	 */
204 	NONE = 0,
205 	/**
206 	 * If no-one owns the name when
207 	 * beginning to watch the name, ask the bus to launch an owner for the
208 	 * name.
209 	 */
210 	AUTO_START = 1,
211 }
212 alias GBusNameWatcherFlags BusNameWatcherFlags;
213 
214 /**
215  * An enumeration for well-known message buses.
216  *
217  * Since: 2.26
218  */
219 public enum GBusType
220 {
221 	/**
222 	 * An alias for the message bus that activated the process, if any.
223 	 */
224 	STARTER = -1,
225 	/**
226 	 * Not a message bus.
227 	 */
228 	NONE = 0,
229 	/**
230 	 * The system-wide message bus.
231 	 */
232 	SYSTEM = 1,
233 	/**
234 	 * The login session message bus.
235 	 */
236 	SESSION = 2,
237 }
238 alias GBusType BusType;
239 
240 /**
241  * Flags used when calling a g_converter_convert().
242  *
243  * Since: 2.24
244  */
245 public enum GConverterFlags
246 {
247 	/**
248 	 * No flags.
249 	 */
250 	NONE = 0,
251 	/**
252 	 * At end of input data
253 	 */
254 	INPUT_AT_END = 1,
255 	/**
256 	 * Flush data
257 	 */
258 	FLUSH = 2,
259 }
260 alias GConverterFlags ConverterFlags;
261 
262 /**
263  * Results returned from g_converter_convert().
264  *
265  * Since: 2.24
266  */
267 public enum GConverterResult
268 {
269 	/**
270 	 * There was an error during conversion.
271 	 */
272 	ERROR = 0,
273 	/**
274 	 * Some data was consumed or produced
275 	 */
276 	CONVERTED = 1,
277 	/**
278 	 * The conversion is finished
279 	 */
280 	FINISHED = 2,
281 	/**
282 	 * Flushing is finished
283 	 */
284 	FLUSHED = 3,
285 }
286 alias GConverterResult ConverterResult;
287 
288 /**
289  * Enumeration describing different kinds of native credential types.
290  *
291  * Since: 2.26
292  */
293 public enum GCredentialsType
294 {
295 	/**
296 	 * Indicates an invalid native credential type.
297 	 */
298 	INVALID = 0,
299 	/**
300 	 * The native credentials type is a struct ucred.
301 	 */
302 	LINUX_UCRED = 1,
303 	/**
304 	 * The native credentials type is a struct cmsgcred.
305 	 */
306 	FREEBSD_CMSGCRED = 2,
307 	/**
308 	 * The native credentials type is a struct sockpeercred. Added in 2.30.
309 	 */
310 	OPENBSD_SOCKPEERCRED = 3,
311 	/**
312 	 * The native credentials type is a ucred_t. Added in 2.40.
313 	 */
314 	SOLARIS_UCRED = 4,
315 	/**
316 	 * The native credentials type is a struct unpcbid.
317 	 */
318 	NETBSD_UNPCBID = 5,
319 }
320 alias GCredentialsType CredentialsType;
321 
322 /**
323  * Flags used in g_dbus_connection_call() and similar APIs.
324  *
325  * Since: 2.26
326  */
327 public enum GDBusCallFlags
328 {
329 	/**
330 	 * No flags set.
331 	 */
332 	NONE = 0,
333 	/**
334 	 * The bus must not launch
335 	 * an owner for the destination name in response to this method
336 	 * invocation.
337 	 */
338 	NO_AUTO_START = 1,
339 	/**
340 	 * the caller is prepared to
341 	 * wait for interactive authorization. Since 2.46.
342 	 */
343 	ALLOW_INTERACTIVE_AUTHORIZATION = 2,
344 }
345 alias GDBusCallFlags DBusCallFlags;
346 
347 /**
348  * Capabilities negotiated with the remote peer.
349  *
350  * Since: 2.26
351  */
352 public enum GDBusCapabilityFlags
353 {
354 	/**
355 	 * No flags set.
356 	 */
357 	NONE = 0,
358 	/**
359 	 * The connection
360 	 * supports exchanging UNIX file descriptors with the remote peer.
361 	 */
362 	UNIX_FD_PASSING = 1,
363 }
364 alias GDBusCapabilityFlags DBusCapabilityFlags;
365 
366 /**
367  * Flags used when creating a new #GDBusConnection.
368  *
369  * Since: 2.26
370  */
371 public enum GDBusConnectionFlags
372 {
373 	/**
374 	 * No flags set.
375 	 */
376 	NONE = 0,
377 	/**
378 	 * Perform authentication against server.
379 	 */
380 	AUTHENTICATION_CLIENT = 1,
381 	/**
382 	 * Perform authentication against client.
383 	 */
384 	AUTHENTICATION_SERVER = 2,
385 	/**
386 	 * When
387 	 * authenticating as a server, allow the anonymous authentication
388 	 * method.
389 	 */
390 	AUTHENTICATION_ALLOW_ANONYMOUS = 4,
391 	/**
392 	 * Pass this flag if connecting to a peer that is a
393 	 * message bus. This means that the Hello() method will be invoked as part of the connection setup.
394 	 */
395 	MESSAGE_BUS_CONNECTION = 8,
396 	/**
397 	 * If set, processing of D-Bus messages is
398 	 * delayed until g_dbus_connection_start_message_processing() is called.
399 	 */
400 	DELAY_MESSAGE_PROCESSING = 16,
401 }
402 alias GDBusConnectionFlags DBusConnectionFlags;
403 
404 /**
405  * Error codes for the %G_DBUS_ERROR error domain.
406  *
407  * Since: 2.26
408  */
409 public enum GDBusError
410 {
411 	/**
412 	 * A generic error; "something went wrong" - see the error message for
413 	 * more.
414 	 */
415 	FAILED = 0,
416 	/**
417 	 * There was not enough memory to complete an operation.
418 	 */
419 	NO_MEMORY = 1,
420 	/**
421 	 * The bus doesn't know how to launch a service to supply the bus name
422 	 * you wanted.
423 	 */
424 	SERVICE_UNKNOWN = 2,
425 	/**
426 	 * The bus name you referenced doesn't exist (i.e. no application owns
427 	 * it).
428 	 */
429 	NAME_HAS_NO_OWNER = 3,
430 	/**
431 	 * No reply to a message expecting one, usually means a timeout occurred.
432 	 */
433 	NO_REPLY = 4,
434 	/**
435 	 * Something went wrong reading or writing to a socket, for example.
436 	 */
437 	IO_ERROR = 5,
438 	/**
439 	 * A D-Bus bus address was malformed.
440 	 */
441 	BAD_ADDRESS = 6,
442 	/**
443 	 * Requested operation isn't supported (like ENOSYS on UNIX).
444 	 */
445 	NOT_SUPPORTED = 7,
446 	/**
447 	 * Some limited resource is exhausted.
448 	 */
449 	LIMITS_EXCEEDED = 8,
450 	/**
451 	 * Security restrictions don't allow doing what you're trying to do.
452 	 */
453 	ACCESS_DENIED = 9,
454 	/**
455 	 * Authentication didn't work.
456 	 */
457 	AUTH_FAILED = 10,
458 	/**
459 	 * Unable to connect to server (probably caused by ECONNREFUSED on a
460 	 * socket).
461 	 */
462 	NO_SERVER = 11,
463 	/**
464 	 * Certain timeout errors, possibly ETIMEDOUT on a socket.  Note that
465 	 * %G_DBUS_ERROR_NO_REPLY is used for message reply timeouts. Warning:
466 	 * this is confusingly-named given that %G_DBUS_ERROR_TIMED_OUT also
467 	 * exists. We can't fix it for compatibility reasons so just be
468 	 * careful.
469 	 */
470 	TIMEOUT = 12,
471 	/**
472 	 * No network access (probably ENETUNREACH on a socket).
473 	 */
474 	NO_NETWORK = 13,
475 	/**
476 	 * Can't bind a socket since its address is in use (i.e. EADDRINUSE).
477 	 */
478 	ADDRESS_IN_USE = 14,
479 	/**
480 	 * The connection is disconnected and you're trying to use it.
481 	 */
482 	DISCONNECTED = 15,
483 	/**
484 	 * Invalid arguments passed to a method call.
485 	 */
486 	INVALID_ARGS = 16,
487 	/**
488 	 * Missing file.
489 	 */
490 	FILE_NOT_FOUND = 17,
491 	/**
492 	 * Existing file and the operation you're using does not silently overwrite.
493 	 */
494 	FILE_EXISTS = 18,
495 	/**
496 	 * Method name you invoked isn't known by the object you invoked it on.
497 	 */
498 	UNKNOWN_METHOD = 19,
499 	/**
500 	 * Certain timeout errors, e.g. while starting a service. Warning: this is
501 	 * confusingly-named given that %G_DBUS_ERROR_TIMEOUT also exists. We
502 	 * can't fix it for compatibility reasons so just be careful.
503 	 */
504 	TIMED_OUT = 20,
505 	/**
506 	 * Tried to remove or modify a match rule that didn't exist.
507 	 */
508 	MATCH_RULE_NOT_FOUND = 21,
509 	/**
510 	 * The match rule isn't syntactically valid.
511 	 */
512 	MATCH_RULE_INVALID = 22,
513 	/**
514 	 * While starting a new process, the exec() call failed.
515 	 */
516 	SPAWN_EXEC_FAILED = 23,
517 	/**
518 	 * While starting a new process, the fork() call failed.
519 	 */
520 	SPAWN_FORK_FAILED = 24,
521 	/**
522 	 * While starting a new process, the child exited with a status code.
523 	 */
524 	SPAWN_CHILD_EXITED = 25,
525 	/**
526 	 * While starting a new process, the child exited on a signal.
527 	 */
528 	SPAWN_CHILD_SIGNALED = 26,
529 	/**
530 	 * While starting a new process, something went wrong.
531 	 */
532 	SPAWN_FAILED = 27,
533 	/**
534 	 * We failed to setup the environment correctly.
535 	 */
536 	SPAWN_SETUP_FAILED = 28,
537 	/**
538 	 * We failed to setup the config parser correctly.
539 	 */
540 	SPAWN_CONFIG_INVALID = 29,
541 	/**
542 	 * Bus name was not valid.
543 	 */
544 	SPAWN_SERVICE_INVALID = 30,
545 	/**
546 	 * Service file not found in system-services directory.
547 	 */
548 	SPAWN_SERVICE_NOT_FOUND = 31,
549 	/**
550 	 * Permissions are incorrect on the setuid helper.
551 	 */
552 	SPAWN_PERMISSIONS_INVALID = 32,
553 	/**
554 	 * Service file invalid (Name, User or Exec missing).
555 	 */
556 	SPAWN_FILE_INVALID = 33,
557 	/**
558 	 * Tried to get a UNIX process ID and it wasn't available.
559 	 */
560 	SPAWN_NO_MEMORY = 34,
561 	/**
562 	 * Tried to get a UNIX process ID and it wasn't available.
563 	 */
564 	UNIX_PROCESS_ID_UNKNOWN = 35,
565 	/**
566 	 * A type signature is not valid.
567 	 */
568 	INVALID_SIGNATURE = 36,
569 	/**
570 	 * A file contains invalid syntax or is otherwise broken.
571 	 */
572 	INVALID_FILE_CONTENT = 37,
573 	/**
574 	 * Asked for SELinux security context and it wasn't available.
575 	 */
576 	SELINUX_SECURITY_CONTEXT_UNKNOWN = 38,
577 	/**
578 	 * Asked for ADT audit data and it wasn't available.
579 	 */
580 	ADT_AUDIT_DATA_UNKNOWN = 39,
581 	/**
582 	 * There's already an object with the requested object path.
583 	 */
584 	OBJECT_PATH_IN_USE = 40,
585 	/**
586 	 * Object you invoked a method on isn't known. Since 2.42
587 	 */
588 	UNKNOWN_OBJECT = 41,
589 	/**
590 	 * Interface you invoked a method on isn't known by the object. Since 2.42
591 	 */
592 	UNKNOWN_INTERFACE = 42,
593 	/**
594 	 * Property you tried to access isn't known by the object. Since 2.42
595 	 */
596 	UNKNOWN_PROPERTY = 43,
597 	/**
598 	 * Property you tried to set is read-only. Since 2.42
599 	 */
600 	PROPERTY_READ_ONLY = 44,
601 }
602 alias GDBusError DBusError;
603 
604 /**
605  * Flags describing the behavior of a #GDBusInterfaceSkeleton instance.
606  *
607  * Since: 2.30
608  */
609 public enum GDBusInterfaceSkeletonFlags
610 {
611 	/**
612 	 * No flags set.
613 	 */
614 	NONE = 0,
615 	/**
616 	 * Each method invocation is handled in
617 	 * a thread dedicated to the invocation. This means that the method implementation can use blocking IO
618 	 * without blocking any other part of the process. It also means that the method implementation must
619 	 * use locking to access data structures used by other threads.
620 	 */
621 	HANDLE_METHOD_INVOCATIONS_IN_THREAD = 1,
622 }
623 alias GDBusInterfaceSkeletonFlags DBusInterfaceSkeletonFlags;
624 
625 /**
626  * Enumeration used to describe the byte order of a D-Bus message.
627  *
628  * Since: 2.26
629  */
630 public enum GDBusMessageByteOrder
631 {
632 	/**
633 	 * The byte order is big endian.
634 	 */
635 	BIG_ENDIAN = 66,
636 	/**
637 	 * The byte order is little endian.
638 	 */
639 	LITTLE_ENDIAN = 108,
640 }
641 alias GDBusMessageByteOrder DBusMessageByteOrder;
642 
643 /**
644  * Message flags used in #GDBusMessage.
645  *
646  * Since: 2.26
647  */
648 public enum GDBusMessageFlags
649 {
650 	/**
651 	 * No flags set.
652 	 */
653 	NONE = 0,
654 	/**
655 	 * A reply is not expected.
656 	 */
657 	NO_REPLY_EXPECTED = 1,
658 	/**
659 	 * The bus must not launch an
660 	 * owner for the destination name in response to this message.
661 	 */
662 	NO_AUTO_START = 2,
663 	/**
664 	 * If set on a method
665 	 * call, this flag means that the caller is prepared to wait for interactive
666 	 * authorization. Since 2.46.
667 	 */
668 	ALLOW_INTERACTIVE_AUTHORIZATION = 4,
669 }
670 alias GDBusMessageFlags DBusMessageFlags;
671 
672 /**
673  * Header fields used in #GDBusMessage.
674  *
675  * Since: 2.26
676  */
677 public enum GDBusMessageHeaderField
678 {
679 	/**
680 	 * Not a valid header field.
681 	 */
682 	INVALID = 0,
683 	/**
684 	 * The object path.
685 	 */
686 	PATH = 1,
687 	/**
688 	 * The interface name.
689 	 */
690 	INTERFACE = 2,
691 	/**
692 	 * The method or signal name.
693 	 */
694 	MEMBER = 3,
695 	/**
696 	 * The name of the error that occurred.
697 	 */
698 	ERROR_NAME = 4,
699 	/**
700 	 * The serial number the message is a reply to.
701 	 */
702 	REPLY_SERIAL = 5,
703 	/**
704 	 * The name the message is intended for.
705 	 */
706 	DESTINATION = 6,
707 	/**
708 	 * Unique name of the sender of the message (filled in by the bus).
709 	 */
710 	SENDER = 7,
711 	/**
712 	 * The signature of the message body.
713 	 */
714 	SIGNATURE = 8,
715 	/**
716 	 * The number of UNIX file descriptors that accompany the message.
717 	 */
718 	NUM_UNIX_FDS = 9,
719 }
720 alias GDBusMessageHeaderField DBusMessageHeaderField;
721 
722 /**
723  * Message types used in #GDBusMessage.
724  *
725  * Since: 2.26
726  */
727 public enum GDBusMessageType
728 {
729 	/**
730 	 * Message is of invalid type.
731 	 */
732 	INVALID = 0,
733 	/**
734 	 * Method call.
735 	 */
736 	METHOD_CALL = 1,
737 	/**
738 	 * Method reply.
739 	 */
740 	METHOD_RETURN = 2,
741 	/**
742 	 * Error reply.
743 	 */
744 	ERROR = 3,
745 	/**
746 	 * Signal emission.
747 	 */
748 	SIGNAL = 4,
749 }
750 alias GDBusMessageType DBusMessageType;
751 
752 /**
753  * Flags used when constructing a #GDBusObjectManagerClient.
754  *
755  * Since: 2.30
756  */
757 public enum GDBusObjectManagerClientFlags
758 {
759 	/**
760 	 * No flags set.
761 	 */
762 	NONE = 0,
763 	/**
764 	 * If not set and the
765 	 * manager is for a well-known name, then request the bus to launch
766 	 * an owner for the name if no-one owns the name. This flag can only
767 	 * be used in managers for well-known names.
768 	 */
769 	DO_NOT_AUTO_START = 1,
770 }
771 alias GDBusObjectManagerClientFlags DBusObjectManagerClientFlags;
772 
773 /**
774  * Flags describing the access control of a D-Bus property.
775  *
776  * Since: 2.26
777  */
778 public enum GDBusPropertyInfoFlags
779 {
780 	/**
781 	 * No flags set.
782 	 */
783 	NONE = 0,
784 	/**
785 	 * Property is readable.
786 	 */
787 	READABLE = 1,
788 	/**
789 	 * Property is writable.
790 	 */
791 	WRITABLE = 2,
792 }
793 alias GDBusPropertyInfoFlags DBusPropertyInfoFlags;
794 
795 /**
796  * Flags used when constructing an instance of a #GDBusProxy derived class.
797  *
798  * Since: 2.26
799  */
800 public enum GDBusProxyFlags
801 {
802 	/**
803 	 * No flags set.
804 	 */
805 	NONE = 0,
806 	/**
807 	 * Don't load properties.
808 	 */
809 	DO_NOT_LOAD_PROPERTIES = 1,
810 	/**
811 	 * Don't connect to signals on the remote object.
812 	 */
813 	DO_NOT_CONNECT_SIGNALS = 2,
814 	/**
815 	 * If the proxy is for a well-known name,
816 	 * do not ask the bus to launch an owner during proxy initialization or a method call.
817 	 * This flag is only meaningful in proxies for well-known names.
818 	 */
819 	DO_NOT_AUTO_START = 4,
820 	/**
821 	 * If set, the property value for any __invalidated property__ will be (asynchronously) retrieved upon receiving the [`PropertiesChanged`](http://dbus.freedesktop.org/doc/dbus-specification.html#standard-interfaces-properties) D-Bus signal and the property will not cause emission of the #GDBusProxy::g-properties-changed signal. When the value is received the #GDBusProxy::g-properties-changed signal is emitted for the property along with the retrieved value. Since 2.32.
822 	 */
823 	GET_INVALIDATED_PROPERTIES = 8,
824 	/**
825 	 * If the proxy is for a well-known name,
826 	 * do not ask the bus to launch an owner during proxy initialization, but allow it to be
827 	 * autostarted by a method call. This flag is only meaningful in proxies for well-known names,
828 	 * and only if %G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START is not also specified.
829 	 */
830 	DO_NOT_AUTO_START_AT_CONSTRUCTION = 16,
831 }
832 alias GDBusProxyFlags DBusProxyFlags;
833 
834 /**
835  * Flags used when sending #GDBusMessages on a #GDBusConnection.
836  *
837  * Since: 2.26
838  */
839 public enum GDBusSendMessageFlags
840 {
841 	/**
842 	 * No flags set.
843 	 */
844 	NONE = 0,
845 	/**
846 	 * Do not automatically
847 	 * assign a serial number from the #GDBusConnection object when
848 	 * sending a message.
849 	 */
850 	PRESERVE_SERIAL = 1,
851 }
852 alias GDBusSendMessageFlags DBusSendMessageFlags;
853 
854 /**
855  * Flags used when creating a #GDBusServer.
856  *
857  * Since: 2.26
858  */
859 public enum GDBusServerFlags
860 {
861 	/**
862 	 * No flags set.
863 	 */
864 	NONE = 0,
865 	/**
866 	 * All #GDBusServer::new-connection
867 	 * signals will run in separated dedicated threads (see signal for
868 	 * details).
869 	 */
870 	RUN_IN_THREAD = 1,
871 	/**
872 	 * Allow the anonymous
873 	 * authentication method.
874 	 */
875 	AUTHENTICATION_ALLOW_ANONYMOUS = 2,
876 }
877 alias GDBusServerFlags DBusServerFlags;
878 
879 /**
880  * Flags used when subscribing to signals via g_dbus_connection_signal_subscribe().
881  *
882  * Since: 2.26
883  */
884 public enum GDBusSignalFlags
885 {
886 	/**
887 	 * No flags set.
888 	 */
889 	NONE = 0,
890 	/**
891 	 * Don't actually send the AddMatch
892 	 * D-Bus call for this signal subscription.  This gives you more control
893 	 * over which match rules you add (but you must add them manually).
894 	 */
895 	NO_MATCH_RULE = 1,
896 	/**
897 	 * Match first arguments that
898 	 * contain a bus or interface name with the given namespace.
899 	 */
900 	MATCH_ARG0_NAMESPACE = 2,
901 	/**
902 	 * Match first arguments that
903 	 * contain an object path that is either equivalent to the given path,
904 	 * or one of the paths is a subpath of the other.
905 	 */
906 	MATCH_ARG0_PATH = 4,
907 }
908 alias GDBusSignalFlags DBusSignalFlags;
909 
910 /**
911  * Flags passed to g_dbus_connection_register_subtree().
912  *
913  * Since: 2.26
914  */
915 public enum GDBusSubtreeFlags
916 {
917 	/**
918 	 * No flags set.
919 	 */
920 	NONE = 0,
921 	/**
922 	 * Method calls to objects not in the enumerated range
923 	 * will still be dispatched. This is useful if you want
924 	 * to dynamically spawn objects in the subtree.
925 	 */
926 	DISPATCH_TO_UNENUMERATED_NODES = 1,
927 }
928 alias GDBusSubtreeFlags DBusSubtreeFlags;
929 
930 /**
931  * #GDataStreamByteOrder is used to ensure proper endianness of streaming data sources
932  * across various machine architectures.
933  */
934 public enum GDataStreamByteOrder
935 {
936 	/**
937 	 * Selects Big Endian byte order.
938 	 */
939 	BIG_ENDIAN = 0,
940 	/**
941 	 * Selects Little Endian byte order.
942 	 */
943 	LITTLE_ENDIAN = 1,
944 	/**
945 	 * Selects endianness based on host machine's architecture.
946 	 */
947 	HOST_ENDIAN = 2,
948 }
949 alias GDataStreamByteOrder DataStreamByteOrder;
950 
951 /**
952  * #GDataStreamNewlineType is used when checking for or setting the line endings for a given file.
953  */
954 public enum GDataStreamNewlineType
955 {
956 	/**
957 	 * Selects "LF" line endings, common on most modern UNIX platforms.
958 	 */
959 	LF = 0,
960 	/**
961 	 * Selects "CR" line endings.
962 	 */
963 	CR = 1,
964 	/**
965 	 * Selects "CR, LF" line ending, common on Microsoft Windows.
966 	 */
967 	CR_LF = 2,
968 	/**
969 	 * Automatically try to handle any line ending type.
970 	 */
971 	ANY = 3,
972 }
973 alias GDataStreamNewlineType DataStreamNewlineType;
974 
975 /**
976  * Flags used when starting a drive.
977  *
978  * Since: 2.22
979  */
980 public enum GDriveStartFlags
981 {
982 	/**
983 	 * No flags set.
984 	 */
985 	NONE = 0,
986 }
987 alias GDriveStartFlags DriveStartFlags;
988 
989 /**
990  * Enumeration describing how a drive can be started/stopped.
991  *
992  * Since: 2.22
993  */
994 public enum GDriveStartStopType
995 {
996 	/**
997 	 * Unknown or drive doesn't support
998 	 * start/stop.
999 	 */
1000 	UNKNOWN = 0,
1001 	/**
1002 	 * The stop method will physically
1003 	 * shut down the drive and e.g. power down the port the drive is
1004 	 * attached to.
1005 	 */
1006 	SHUTDOWN = 1,
1007 	/**
1008 	 * The start/stop methods are used
1009 	 * for connecting/disconnect to the drive over the network.
1010 	 */
1011 	NETWORK = 2,
1012 	/**
1013 	 * The start/stop methods will
1014 	 * assemble/disassemble a virtual drive from several physical
1015 	 * drives.
1016 	 */
1017 	MULTIDISK = 3,
1018 	/**
1019 	 * The start/stop methods will
1020 	 * unlock/lock the disk (for example using the ATA <quote>SECURITY
1021 	 * UNLOCK DEVICE</quote> command)
1022 	 */
1023 	PASSWORD = 4,
1024 }
1025 alias GDriveStartStopType DriveStartStopType;
1026 
1027 /**
1028  * GEmblemOrigin is used to add information about the origin of the emblem
1029  * to #GEmblem.
1030  *
1031  * Since: 2.18
1032  */
1033 public enum GEmblemOrigin
1034 {
1035 	/**
1036 	 * Emblem of unknown origin
1037 	 */
1038 	UNKNOWN = 0,
1039 	/**
1040 	 * Emblem adds device-specific information
1041 	 */
1042 	DEVICE = 1,
1043 	/**
1044 	 * Emblem depicts live metadata, such as "readonly"
1045 	 */
1046 	LIVEMETADATA = 2,
1047 	/**
1048 	 * Emblem comes from a user-defined tag, e.g. set by nautilus (in the future)
1049 	 */
1050 	TAG = 3,
1051 }
1052 alias GEmblemOrigin EmblemOrigin;
1053 
1054 /**
1055  * Flags specifying the behaviour of an attribute.
1056  */
1057 public enum GFileAttributeInfoFlags
1058 {
1059 	/**
1060 	 * no flags set.
1061 	 */
1062 	NONE = 0,
1063 	/**
1064 	 * copy the attribute values when the file is copied.
1065 	 */
1066 	COPY_WITH_FILE = 1,
1067 	/**
1068 	 * copy the attribute values when the file is moved.
1069 	 */
1070 	COPY_WHEN_MOVED = 2,
1071 }
1072 alias GFileAttributeInfoFlags FileAttributeInfoFlags;
1073 
1074 /**
1075  * Used by g_file_set_attributes_from_info() when setting file attributes.
1076  */
1077 public enum GFileAttributeStatus
1078 {
1079 	/**
1080 	 * Attribute value is unset (empty).
1081 	 */
1082 	UNSET = 0,
1083 	/**
1084 	 * Attribute value is set.
1085 	 */
1086 	SET = 1,
1087 	/**
1088 	 * Indicates an error in setting the value.
1089 	 */
1090 	ERROR_SETTING = 2,
1091 }
1092 alias GFileAttributeStatus FileAttributeStatus;
1093 
1094 /**
1095  * The data types for file attributes.
1096  */
1097 public enum GFileAttributeType
1098 {
1099 	/**
1100 	 * indicates an invalid or uninitalized type.
1101 	 */
1102 	INVALID = 0,
1103 	/**
1104 	 * a null terminated UTF8 string.
1105 	 */
1106 	STRING = 1,
1107 	/**
1108 	 * a zero terminated string of non-zero bytes.
1109 	 */
1110 	BYTE_STRING = 2,
1111 	/**
1112 	 * a boolean value.
1113 	 */
1114 	BOOLEAN = 3,
1115 	/**
1116 	 * an unsigned 4-byte/32-bit integer.
1117 	 */
1118 	UINT32 = 4,
1119 	/**
1120 	 * a signed 4-byte/32-bit integer.
1121 	 */
1122 	INT32 = 5,
1123 	/**
1124 	 * an unsigned 8-byte/64-bit integer.
1125 	 */
1126 	UINT64 = 6,
1127 	/**
1128 	 * a signed 8-byte/64-bit integer.
1129 	 */
1130 	INT64 = 7,
1131 	/**
1132 	 * a #GObject.
1133 	 */
1134 	OBJECT = 8,
1135 	/**
1136 	 * a %NULL terminated char **. Since 2.22
1137 	 */
1138 	STRINGV = 9,
1139 }
1140 alias GFileAttributeType FileAttributeType;
1141 
1142 /**
1143  * Flags used when copying or moving files.
1144  */
1145 public enum GFileCopyFlags
1146 {
1147 	/**
1148 	 * No flags set.
1149 	 */
1150 	NONE = 0,
1151 	/**
1152 	 * Overwrite any existing files
1153 	 */
1154 	OVERWRITE = 1,
1155 	/**
1156 	 * Make a backup of any existing files.
1157 	 */
1158 	BACKUP = 2,
1159 	/**
1160 	 * Don't follow symlinks.
1161 	 */
1162 	NOFOLLOW_SYMLINKS = 4,
1163 	/**
1164 	 * Copy all file metadata instead of just default set used for copy (see #GFileInfo).
1165 	 */
1166 	ALL_METADATA = 8,
1167 	/**
1168 	 * Don't use copy and delete fallback if native move not supported.
1169 	 */
1170 	NO_FALLBACK_FOR_MOVE = 16,
1171 	/**
1172 	 * Leaves target file with default perms, instead of setting the source file perms.
1173 	 */
1174 	TARGET_DEFAULT_PERMS = 32,
1175 }
1176 alias GFileCopyFlags FileCopyFlags;
1177 
1178 /**
1179  * Flags used when an operation may create a file.
1180  */
1181 public enum GFileCreateFlags
1182 {
1183 	/**
1184 	 * No flags set.
1185 	 */
1186 	NONE = 0,
1187 	/**
1188 	 * Create a file that can only be
1189 	 * accessed by the current user.
1190 	 */
1191 	PRIVATE = 1,
1192 	/**
1193 	 * Replace the destination
1194 	 * as if it didn't exist before. Don't try to keep any old
1195 	 * permissions, replace instead of following links. This
1196 	 * is generally useful if you're doing a "copy over"
1197 	 * rather than a "save new version of" replace operation.
1198 	 * You can think of it as "unlink destination" before
1199 	 * writing to it, although the implementation may not
1200 	 * be exactly like that. Since 2.20
1201 	 */
1202 	REPLACE_DESTINATION = 2,
1203 }
1204 alias GFileCreateFlags FileCreateFlags;
1205 
1206 /**
1207  * Flags that can be used with g_file_measure_disk_usage().
1208  *
1209  * Since: 2.38
1210  */
1211 public enum GFileMeasureFlags
1212 {
1213 	/**
1214 	 * No flags set.
1215 	 */
1216 	NONE = 0,
1217 	/**
1218 	 * Report any error encountered
1219 	 * while traversing the directory tree.  Normally errors are only
1220 	 * reported for the toplevel file.
1221 	 */
1222 	REPORT_ANY_ERROR = 2,
1223 	/**
1224 	 * Tally usage based on apparent file
1225 	 * sizes.  Normally, the block-size is used, if available, as this is a
1226 	 * more accurate representation of disk space used.
1227 	 * Compare with `du --apparent-size`.
1228 	 */
1229 	APPARENT_SIZE = 4,
1230 	/**
1231 	 * Do not cross mount point boundaries.
1232 	 * Compare with `du -x`.
1233 	 */
1234 	NO_XDEV = 8,
1235 }
1236 alias GFileMeasureFlags FileMeasureFlags;
1237 
1238 /**
1239  * Specifies what type of event a monitor event is.
1240  */
1241 public enum GFileMonitorEvent
1242 {
1243 	/**
1244 	 * a file changed.
1245 	 */
1246 	CHANGED = 0,
1247 	/**
1248 	 * a hint that this was probably the last change in a set of changes.
1249 	 */
1250 	CHANGES_DONE_HINT = 1,
1251 	/**
1252 	 * a file was deleted.
1253 	 */
1254 	DELETED = 2,
1255 	/**
1256 	 * a file was created.
1257 	 */
1258 	CREATED = 3,
1259 	/**
1260 	 * a file attribute was changed.
1261 	 */
1262 	ATTRIBUTE_CHANGED = 4,
1263 	/**
1264 	 * the file location will soon be unmounted.
1265 	 */
1266 	PRE_UNMOUNT = 5,
1267 	/**
1268 	 * the file location was unmounted.
1269 	 */
1270 	UNMOUNTED = 6,
1271 	/**
1272 	 * the file was moved -- only sent if the
1273 	 * (deprecated) %G_FILE_MONITOR_SEND_MOVED flag is set
1274 	 */
1275 	MOVED = 7,
1276 	/**
1277 	 * the file was renamed within the
1278 	 * current directory -- only sent if the %G_FILE_MONITOR_WATCH_MOVES
1279 	 * flag is set.  Since: 2.46.
1280 	 */
1281 	RENAMED = 8,
1282 	/**
1283 	 * the file was moved into the
1284 	 * monitored directory from another location -- only sent if the
1285 	 * %G_FILE_MONITOR_WATCH_MOVES flag is set.  Since: 2.46.
1286 	 */
1287 	MOVED_IN = 9,
1288 	/**
1289 	 * the file was moved out of the
1290 	 * monitored directory to another location -- only sent if the
1291 	 * %G_FILE_MONITOR_WATCH_MOVES flag is set.  Since: 2.46
1292 	 */
1293 	MOVED_OUT = 10,
1294 }
1295 alias GFileMonitorEvent FileMonitorEvent;
1296 
1297 /**
1298  * Flags used to set what a #GFileMonitor will watch for.
1299  */
1300 public enum GFileMonitorFlags
1301 {
1302 	/**
1303 	 * No flags set.
1304 	 */
1305 	NONE = 0,
1306 	/**
1307 	 * Watch for mount events.
1308 	 */
1309 	WATCH_MOUNTS = 1,
1310 	/**
1311 	 * Pair DELETED and CREATED events caused
1312 	 * by file renames (moves) and send a single G_FILE_MONITOR_EVENT_MOVED
1313 	 * event instead (NB: not supported on all backends; the default
1314 	 * behaviour -without specifying this flag- is to send single DELETED
1315 	 * and CREATED events).  Deprecated since 2.46: use
1316 	 * %G_FILE_MONITOR_WATCH_MOVES instead.
1317 	 */
1318 	SEND_MOVED = 2,
1319 	/**
1320 	 * Watch for changes to the file made
1321 	 * via another hard link. Since 2.36.
1322 	 */
1323 	WATCH_HARD_LINKS = 4,
1324 	/**
1325 	 * Watch for rename operations on a
1326 	 * monitored directory.  This causes %G_FILE_MONITOR_EVENT_RENAMED,
1327 	 * %G_FILE_MONITOR_EVENT_MOVED_IN and %G_FILE_MONITOR_EVENT_MOVED_OUT
1328 	 * events to be emitted when possible.  Since: 2.46.
1329 	 */
1330 	WATCH_MOVES = 8,
1331 }
1332 alias GFileMonitorFlags FileMonitorFlags;
1333 
1334 /**
1335  * Flags used when querying a #GFileInfo.
1336  */
1337 public enum GFileQueryInfoFlags
1338 {
1339 	/**
1340 	 * No flags set.
1341 	 */
1342 	NONE = 0,
1343 	/**
1344 	 * Don't follow symlinks.
1345 	 */
1346 	NOFOLLOW_SYMLINKS = 1,
1347 }
1348 alias GFileQueryInfoFlags FileQueryInfoFlags;
1349 
1350 /**
1351  * Indicates the file's on-disk type.
1352  *
1353  * On Windows systems a file will never have %G_FILE_TYPE_SYMBOLIC_LINK type;
1354  * use #GFileInfo and %G_FILE_ATTRIBUTE_STANDARD_IS_SYMLINK to determine
1355  * whether a file is a symlink or not. This is due to the fact that NTFS does
1356  * not have a single filesystem object type for symbolic links - it has
1357  * files that symlink to files, and directories that symlink to directories.
1358  * #GFileType enumeration cannot precisely represent this important distinction,
1359  * which is why all Windows symlinks will continue to be reported as
1360  * %G_FILE_TYPE_REGULAR or %G_FILE_TYPE_DIRECTORY.
1361  */
1362 public enum GFileType
1363 {
1364 	/**
1365 	 * File's type is unknown.
1366 	 */
1367 	UNKNOWN = 0,
1368 	/**
1369 	 * File handle represents a regular file.
1370 	 */
1371 	REGULAR = 1,
1372 	/**
1373 	 * File handle represents a directory.
1374 	 */
1375 	DIRECTORY = 2,
1376 	/**
1377 	 * File handle represents a symbolic link
1378 	 * (Unix systems).
1379 	 */
1380 	SYMBOLIC_LINK = 3,
1381 	/**
1382 	 * File is a "special" file, such as a socket, fifo,
1383 	 * block device, or character device.
1384 	 */
1385 	SPECIAL = 4,
1386 	/**
1387 	 * File is a shortcut (Windows systems).
1388 	 */
1389 	SHORTCUT = 5,
1390 	/**
1391 	 * File is a mountable location.
1392 	 */
1393 	MOUNTABLE = 6,
1394 }
1395 alias GFileType FileType;
1396 
1397 /**
1398  * Indicates a hint from the file system whether files should be
1399  * previewed in a file manager. Returned as the value of the key
1400  * #G_FILE_ATTRIBUTE_FILESYSTEM_USE_PREVIEW.
1401  */
1402 public enum GFilesystemPreviewType
1403 {
1404 	/**
1405 	 * Only preview files if user has explicitly requested it.
1406 	 */
1407 	IF_ALWAYS = 0,
1408 	/**
1409 	 * Preview files if user has requested preview of "local" files.
1410 	 */
1411 	IF_LOCAL = 1,
1412 	/**
1413 	 * Never preview files.
1414 	 */
1415 	NEVER = 2,
1416 }
1417 alias GFilesystemPreviewType FilesystemPreviewType;
1418 
1419 /**
1420  * Error codes returned by GIO functions.
1421  *
1422  * Note that this domain may be extended in future GLib releases. In
1423  * general, new error codes either only apply to new APIs, or else
1424  * replace %G_IO_ERROR_FAILED in cases that were not explicitly
1425  * distinguished before. You should therefore avoid writing code like
1426  * |[<!-- language="C" -->
1427  * if (g_error_matches (error, G_IO_ERROR, G_IO_ERROR_FAILED))
1428  * {
1429  * // Assume that this is EPRINTERONFIRE
1430  * ...
1431  * }
1432  * ]|
1433  * but should instead treat all unrecognized error codes the same as
1434  * #G_IO_ERROR_FAILED.
1435  *
1436  * See also #GPollableReturn for a cheaper way of returning
1437  * %G_IO_ERROR_WOULD_BLOCK to callers without allocating a #GError.
1438  */
1439 public enum GIOErrorEnum
1440 {
1441 	/**
1442 	 * Generic error condition for when an operation fails
1443 	 * and no more specific #GIOErrorEnum value is defined.
1444 	 */
1445 	FAILED = 0,
1446 	/**
1447 	 * File not found.
1448 	 */
1449 	NOT_FOUND = 1,
1450 	/**
1451 	 * File already exists.
1452 	 */
1453 	EXISTS = 2,
1454 	/**
1455 	 * File is a directory.
1456 	 */
1457 	IS_DIRECTORY = 3,
1458 	/**
1459 	 * File is not a directory.
1460 	 */
1461 	NOT_DIRECTORY = 4,
1462 	/**
1463 	 * File is a directory that isn't empty.
1464 	 */
1465 	NOT_EMPTY = 5,
1466 	/**
1467 	 * File is not a regular file.
1468 	 */
1469 	NOT_REGULAR_FILE = 6,
1470 	/**
1471 	 * File is not a symbolic link.
1472 	 */
1473 	NOT_SYMBOLIC_LINK = 7,
1474 	/**
1475 	 * File cannot be mounted.
1476 	 */
1477 	NOT_MOUNTABLE_FILE = 8,
1478 	/**
1479 	 * Filename is too many characters.
1480 	 */
1481 	FILENAME_TOO_LONG = 9,
1482 	/**
1483 	 * Filename is invalid or contains invalid characters.
1484 	 */
1485 	INVALID_FILENAME = 10,
1486 	/**
1487 	 * File contains too many symbolic links.
1488 	 */
1489 	TOO_MANY_LINKS = 11,
1490 	/**
1491 	 * No space left on drive.
1492 	 */
1493 	NO_SPACE = 12,
1494 	/**
1495 	 * Invalid argument.
1496 	 */
1497 	INVALID_ARGUMENT = 13,
1498 	/**
1499 	 * Permission denied.
1500 	 */
1501 	PERMISSION_DENIED = 14,
1502 	/**
1503 	 * Operation (or one of its parameters) not supported
1504 	 */
1505 	NOT_SUPPORTED = 15,
1506 	/**
1507 	 * File isn't mounted.
1508 	 */
1509 	NOT_MOUNTED = 16,
1510 	/**
1511 	 * File is already mounted.
1512 	 */
1513 	ALREADY_MOUNTED = 17,
1514 	/**
1515 	 * File was closed.
1516 	 */
1517 	CLOSED = 18,
1518 	/**
1519 	 * Operation was cancelled. See #GCancellable.
1520 	 */
1521 	CANCELLED = 19,
1522 	/**
1523 	 * Operations are still pending.
1524 	 */
1525 	PENDING = 20,
1526 	/**
1527 	 * File is read only.
1528 	 */
1529 	READ_ONLY = 21,
1530 	/**
1531 	 * Backup couldn't be created.
1532 	 */
1533 	CANT_CREATE_BACKUP = 22,
1534 	/**
1535 	 * File's Entity Tag was incorrect.
1536 	 */
1537 	WRONG_ETAG = 23,
1538 	/**
1539 	 * Operation timed out.
1540 	 */
1541 	TIMED_OUT = 24,
1542 	/**
1543 	 * Operation would be recursive.
1544 	 */
1545 	WOULD_RECURSE = 25,
1546 	/**
1547 	 * File is busy.
1548 	 */
1549 	BUSY = 26,
1550 	/**
1551 	 * Operation would block.
1552 	 */
1553 	WOULD_BLOCK = 27,
1554 	/**
1555 	 * Host couldn't be found (remote operations).
1556 	 */
1557 	HOST_NOT_FOUND = 28,
1558 	/**
1559 	 * Operation would merge files.
1560 	 */
1561 	WOULD_MERGE = 29,
1562 	/**
1563 	 * Operation failed and a helper program has
1564 	 * already interacted with the user. Do not display any error dialog.
1565 	 */
1566 	FAILED_HANDLED = 30,
1567 	/**
1568 	 * The current process has too many files
1569 	 * open and can't open any more. Duplicate descriptors do count toward
1570 	 * this limit. Since 2.20
1571 	 */
1572 	TOO_MANY_OPEN_FILES = 31,
1573 	/**
1574 	 * The object has not been initialized. Since 2.22
1575 	 */
1576 	NOT_INITIALIZED = 32,
1577 	/**
1578 	 * The requested address is already in use. Since 2.22
1579 	 */
1580 	ADDRESS_IN_USE = 33,
1581 	/**
1582 	 * Need more input to finish operation. Since 2.24
1583 	 */
1584 	PARTIAL_INPUT = 34,
1585 	/**
1586 	 * The input data was invalid. Since 2.24
1587 	 */
1588 	INVALID_DATA = 35,
1589 	/**
1590 	 * A remote object generated an error that
1591 	 * doesn't correspond to a locally registered #GError error
1592 	 * domain. Use g_dbus_error_get_remote_error() to extract the D-Bus
1593 	 * error name and g_dbus_error_strip_remote_error() to fix up the
1594 	 * message so it matches what was received on the wire. Since 2.26.
1595 	 */
1596 	DBUS_ERROR = 36,
1597 	/**
1598 	 * Host unreachable. Since 2.26
1599 	 */
1600 	HOST_UNREACHABLE = 37,
1601 	/**
1602 	 * Network unreachable. Since 2.26
1603 	 */
1604 	NETWORK_UNREACHABLE = 38,
1605 	/**
1606 	 * Connection refused. Since 2.26
1607 	 */
1608 	CONNECTION_REFUSED = 39,
1609 	/**
1610 	 * Connection to proxy server failed. Since 2.26
1611 	 */
1612 	PROXY_FAILED = 40,
1613 	/**
1614 	 * Proxy authentication failed. Since 2.26
1615 	 */
1616 	PROXY_AUTH_FAILED = 41,
1617 	/**
1618 	 * Proxy server needs authentication. Since 2.26
1619 	 */
1620 	PROXY_NEED_AUTH = 42,
1621 	/**
1622 	 * Proxy connection is not allowed by ruleset.
1623 	 * Since 2.26
1624 	 */
1625 	PROXY_NOT_ALLOWED = 43,
1626 	/**
1627 	 * Broken pipe. Since 2.36
1628 	 */
1629 	BROKEN_PIPE = 44,
1630 	/**
1631 	 * Connection closed by peer. Note that this
1632 	 * is the same code as %G_IO_ERROR_BROKEN_PIPE; before 2.44 some
1633 	 * "connection closed" errors returned %G_IO_ERROR_BROKEN_PIPE, but others
1634 	 * returned %G_IO_ERROR_FAILED. Now they should all return the same
1635 	 * value, which has this more logical name. Since 2.44.
1636 	 */
1637 	CONNECTION_CLOSED = 44,
1638 	/**
1639 	 * Transport endpoint is not connected. Since 2.44
1640 	 */
1641 	NOT_CONNECTED = 45,
1642 	/**
1643 	 * Message too large. Since 2.48.
1644 	 */
1645 	MESSAGE_TOO_LARGE = 46,
1646 }
1647 alias GIOErrorEnum IOErrorEnum;
1648 
1649 /**
1650  * Flags for use with g_io_module_scope_new().
1651  *
1652  * Since: 2.30
1653  */
1654 public enum GIOModuleScopeFlags
1655 {
1656 	/**
1657 	 * No module scan flags
1658 	 */
1659 	NONE = 0,
1660 	/**
1661 	 * When using this scope to load or
1662 	 * scan modules, automatically block a modules which has the same base
1663 	 * basename as previously loaded module.
1664 	 */
1665 	BLOCK_DUPLICATES = 1,
1666 }
1667 alias GIOModuleScopeFlags IOModuleScopeFlags;
1668 
1669 /**
1670  * GIOStreamSpliceFlags determine how streams should be spliced.
1671  *
1672  * Since: 2.28
1673  */
1674 public enum GIOStreamSpliceFlags
1675 {
1676 	/**
1677 	 * Do not close either stream.
1678 	 */
1679 	NONE = 0,
1680 	/**
1681 	 * Close the first stream after
1682 	 * the splice.
1683 	 */
1684 	CLOSE_STREAM1 = 1,
1685 	/**
1686 	 * Close the second stream after
1687 	 * the splice.
1688 	 */
1689 	CLOSE_STREAM2 = 2,
1690 	/**
1691 	 * Wait for both splice operations to finish
1692 	 * before calling the callback.
1693 	 */
1694 	WAIT_FOR_BOTH = 4,
1695 }
1696 alias GIOStreamSpliceFlags IOStreamSpliceFlags;
1697 
1698 /**
1699  * Memory availability warning levels.
1700  *
1701  * Note that because new values might be added, it is recommended that applications check
1702  * #GMemoryMonitorWarningLevel as ranges, for example:
1703  * |[<!-- language="C" -->
1704  * if (warning_level > G_MEMORY_MONITOR_WARNING_LEVEL_LOW)
1705  * drop_caches ();
1706  * ]|
1707  *
1708  * Since: 2.64
1709  */
1710 public enum GMemoryMonitorWarningLevel
1711 {
1712 	/**
1713 	 * Memory on the device is low, processes
1714 	 * should free up unneeded resources (for example, in-memory caches) so they can
1715 	 * be used elsewhere.
1716 	 */
1717 	LOW = 50,
1718 	/**
1719 	 * Same as @G_MEMORY_MONITOR_WARNING_LEVEL_LOW
1720 	 * but the device has even less free memory, so processes should try harder to free
1721 	 * up unneeded resources. If your process does not need to stay running, it is a
1722 	 * good time for it to quit.
1723 	 */
1724 	MEDIUM = 100,
1725 	/**
1726 	 * The system will soon start terminating
1727 	 * processes to reclaim memory, including background processes.
1728 	 */
1729 	CRITICAL = 255,
1730 }
1731 alias GMemoryMonitorWarningLevel MemoryMonitorWarningLevel;
1732 
1733 /**
1734  * Flags used when mounting a mount.
1735  */
1736 public enum GMountMountFlags
1737 {
1738 	/**
1739 	 * No flags set.
1740 	 */
1741 	NONE = 0,
1742 }
1743 alias GMountMountFlags MountMountFlags;
1744 
1745 /**
1746  * #GMountOperationResult is returned as a result when a request for
1747  * information is send by the mounting operation.
1748  */
1749 public enum GMountOperationResult
1750 {
1751 	/**
1752 	 * The request was fulfilled and the
1753 	 * user specified data is now available
1754 	 */
1755 	HANDLED = 0,
1756 	/**
1757 	 * The user requested the mount operation
1758 	 * to be aborted
1759 	 */
1760 	ABORTED = 1,
1761 	/**
1762 	 * The request was unhandled (i.e. not
1763 	 * implemented)
1764 	 */
1765 	UNHANDLED = 2,
1766 }
1767 alias GMountOperationResult MountOperationResult;
1768 
1769 /**
1770  * Flags used when an unmounting a mount.
1771  */
1772 public enum GMountUnmountFlags
1773 {
1774 	/**
1775 	 * No flags set.
1776 	 */
1777 	NONE = 0,
1778 	/**
1779 	 * Unmount even if there are outstanding
1780 	 * file operations on the mount.
1781 	 */
1782 	FORCE = 1,
1783 }
1784 alias GMountUnmountFlags MountUnmountFlags;
1785 
1786 /**
1787  * The host's network connectivity state, as reported by #GNetworkMonitor.
1788  *
1789  * Since: 2.44
1790  */
1791 public enum GNetworkConnectivity
1792 {
1793 	/**
1794 	 * The host is not configured with a
1795 	 * route to the Internet; it may or may not be connected to a local
1796 	 * network.
1797 	 */
1798 	LOCAL = 1,
1799 	/**
1800 	 * The host is connected to a network, but
1801 	 * does not appear to be able to reach the full Internet, perhaps
1802 	 * due to upstream network problems.
1803 	 */
1804 	LIMITED = 2,
1805 	/**
1806 	 * The host is behind a captive portal and
1807 	 * cannot reach the full Internet.
1808 	 */
1809 	PORTAL = 3,
1810 	/**
1811 	 * The host is connected to a network, and
1812 	 * appears to be able to reach the full Internet.
1813 	 */
1814 	FULL = 4,
1815 }
1816 alias GNetworkConnectivity NetworkConnectivity;
1817 
1818 /**
1819  * Priority levels for #GNotifications.
1820  *
1821  * Since: 2.42
1822  */
1823 public enum GNotificationPriority
1824 {
1825 	/**
1826 	 * the default priority, to be used for the
1827 	 * majority of notifications (for example email messages, software updates,
1828 	 * completed download/sync operations)
1829 	 */
1830 	NORMAL = 0,
1831 	/**
1832 	 * for notifications that do not require
1833 	 * immediate attention - typically used for contextual background
1834 	 * information, such as contact birthdays or local weather
1835 	 */
1836 	LOW = 1,
1837 	/**
1838 	 * for events that require more attention,
1839 	 * usually because responses are time-sensitive (for example chat and SMS
1840 	 * messages or alarms)
1841 	 */
1842 	HIGH = 2,
1843 	/**
1844 	 * for urgent notifications, or notifications
1845 	 * that require a response in a short space of time (for example phone calls
1846 	 * or emergency warnings)
1847 	 */
1848 	URGENT = 3,
1849 }
1850 alias GNotificationPriority NotificationPriority;
1851 
1852 /**
1853  * GOutputStreamSpliceFlags determine how streams should be spliced.
1854  */
1855 public enum GOutputStreamSpliceFlags
1856 {
1857 	/**
1858 	 * Do not close either stream.
1859 	 */
1860 	NONE = 0,
1861 	/**
1862 	 * Close the source stream after
1863 	 * the splice.
1864 	 */
1865 	CLOSE_SOURCE = 1,
1866 	/**
1867 	 * Close the target stream after
1868 	 * the splice.
1869 	 */
1870 	CLOSE_TARGET = 2,
1871 }
1872 alias GOutputStreamSpliceFlags OutputStreamSpliceFlags;
1873 
1874 /**
1875  * #GPasswordSave is used to indicate the lifespan of a saved password.
1876  *
1877  * #Gvfs stores passwords in the Gnome keyring when this flag allows it
1878  * to, and later retrieves it again from there.
1879  */
1880 public enum GPasswordSave
1881 {
1882 	/**
1883 	 * never save a password.
1884 	 */
1885 	NEVER = 0,
1886 	/**
1887 	 * save a password for the session.
1888 	 */
1889 	FOR_SESSION = 1,
1890 	/**
1891 	 * save a password permanently.
1892 	 */
1893 	PERMANENTLY = 2,
1894 }
1895 alias GPasswordSave PasswordSave;
1896 
1897 /**
1898  * Return value for various IO operations that signal errors via the
1899  * return value and not necessarily via a #GError.
1900  *
1901  * This enum exists to be able to return errors to callers without having to
1902  * allocate a #GError. Allocating #GErrors can be quite expensive for
1903  * regularly happening errors like %G_IO_ERROR_WOULD_BLOCK.
1904  *
1905  * In case of %G_POLLABLE_RETURN_FAILED a #GError should be set for the
1906  * operation to give details about the error that happened.
1907  *
1908  * Since: 2.60
1909  */
1910 public enum GPollableReturn
1911 {
1912 	/**
1913 	 * Generic error condition for when an operation fails.
1914 	 */
1915 	FAILED = 0,
1916 	/**
1917 	 * The operation was successfully finished.
1918 	 */
1919 	OK = 1,
1920 	/**
1921 	 * The operation would block.
1922 	 */
1923 	WOULD_BLOCK = -27,
1924 }
1925 alias GPollableReturn PollableReturn;
1926 
1927 /**
1928  * An error code used with %G_RESOLVER_ERROR in a #GError returned
1929  * from a #GResolver routine.
1930  *
1931  * Since: 2.22
1932  */
1933 public enum GResolverError
1934 {
1935 	/**
1936 	 * the requested name/address/service was not
1937 	 * found
1938 	 */
1939 	NOT_FOUND = 0,
1940 	/**
1941 	 * the requested information could not
1942 	 * be looked up due to a network error or similar problem
1943 	 */
1944 	TEMPORARY_FAILURE = 1,
1945 	/**
1946 	 * unknown error
1947 	 */
1948 	INTERNAL = 2,
1949 }
1950 alias GResolverError ResolverError;
1951 
1952 /**
1953  * Flags to modify lookup behavior.
1954  *
1955  * Since: 2.60
1956  */
1957 public enum GResolverNameLookupFlags
1958 {
1959 	/**
1960 	 * default behavior (same as g_resolver_lookup_by_name())
1961 	 */
1962 	DEFAULT = 0,
1963 	/**
1964 	 * only resolve ipv4 addresses
1965 	 */
1966 	IPV4_ONLY = 1,
1967 	/**
1968 	 * only resolve ipv6 addresses
1969 	 */
1970 	IPV6_ONLY = 2,
1971 }
1972 alias GResolverNameLookupFlags ResolverNameLookupFlags;
1973 
1974 /**
1975  * The type of record that g_resolver_lookup_records() or
1976  * g_resolver_lookup_records_async() should retrieve. The records are returned
1977  * as lists of #GVariant tuples. Each record type has different values in
1978  * the variant tuples returned.
1979  *
1980  * %G_RESOLVER_RECORD_SRV records are returned as variants with the signature
1981  * `(qqqs)`, containing a `guint16` with the priority, a `guint16` with the
1982  * weight, a `guint16` with the port, and a string of the hostname.
1983  *
1984  * %G_RESOLVER_RECORD_MX records are returned as variants with the signature
1985  * `(qs)`, representing a `guint16` with the preference, and a string containing
1986  * the mail exchanger hostname.
1987  *
1988  * %G_RESOLVER_RECORD_TXT records are returned as variants with the signature
1989  * `(as)`, representing an array of the strings in the text record. Note: Most TXT
1990  * records only contain a single string, but
1991  * [RFC 1035](https://tools.ietf.org/html/rfc1035#section-3.3.14) does allow a
1992  * record to contain multiple strings. The RFC which defines the interpretation
1993  * of a specific TXT record will likely require concatenation of multiple
1994  * strings if they are present, as with
1995  * [RFC 7208](https://tools.ietf.org/html/rfc7208#section-3.3).
1996  *
1997  * %G_RESOLVER_RECORD_SOA records are returned as variants with the signature
1998  * `(ssuuuuu)`, representing a string containing the primary name server, a
1999  * string containing the administrator, the serial as a `guint32`, the refresh
2000  * interval as a `guint32`, the retry interval as a `guint32`, the expire timeout
2001  * as a `guint32`, and the TTL as a `guint32`.
2002  *
2003  * %G_RESOLVER_RECORD_NS records are returned as variants with the signature
2004  * `(s)`, representing a string of the hostname of the name server.
2005  *
2006  * Since: 2.34
2007  */
2008 public enum GResolverRecordType
2009 {
2010 	/**
2011 	 * look up DNS SRV records for a domain
2012 	 */
2013 	SRV = 1,
2014 	/**
2015 	 * look up DNS MX records for a domain
2016 	 */
2017 	MX = 2,
2018 	/**
2019 	 * look up DNS TXT records for a name
2020 	 */
2021 	TXT = 3,
2022 	/**
2023 	 * look up DNS SOA records for a zone
2024 	 */
2025 	SOA = 4,
2026 	/**
2027 	 * look up DNS NS records for a domain
2028 	 */
2029 	NS = 5,
2030 }
2031 alias GResolverRecordType ResolverRecordType;
2032 
2033 /**
2034  * An error code used with %G_RESOURCE_ERROR in a #GError returned
2035  * from a #GResource routine.
2036  *
2037  * Since: 2.32
2038  */
2039 public enum GResourceError
2040 {
2041 	/**
2042 	 * no file was found at the requested path
2043 	 */
2044 	NOT_FOUND = 0,
2045 	/**
2046 	 * unknown error
2047 	 */
2048 	INTERNAL = 1,
2049 }
2050 alias GResourceError ResourceError;
2051 
2052 /**
2053  * GResourceFlags give information about a particular file inside a resource
2054  * bundle.
2055  *
2056  * Since: 2.32
2057  */
2058 public enum GResourceFlags
2059 {
2060 	/**
2061 	 * No flags set.
2062 	 */
2063 	NONE = 0,
2064 	/**
2065 	 * The file is compressed.
2066 	 */
2067 	COMPRESSED = 1,
2068 }
2069 alias GResourceFlags ResourceFlags;
2070 
2071 /**
2072  * GResourceLookupFlags determine how resource path lookups are handled.
2073  *
2074  * Since: 2.32
2075  */
2076 public enum GResourceLookupFlags
2077 {
2078 	/**
2079 	 * No flags set.
2080 	 */
2081 	NONE = 0,
2082 }
2083 alias GResourceLookupFlags ResourceLookupFlags;
2084 
2085 /**
2086  * Flags used when creating a binding. These flags determine in which
2087  * direction the binding works. The default is to synchronize in both
2088  * directions.
2089  */
2090 public enum GSettingsBindFlags
2091 {
2092 	/**
2093 	 * Equivalent to `G_SETTINGS_BIND_GET|G_SETTINGS_BIND_SET`
2094 	 */
2095 	DEFAULT = 0,
2096 	/**
2097 	 * Update the #GObject property when the setting changes.
2098 	 * It is an error to use this flag if the property is not writable.
2099 	 */
2100 	GET = 1,
2101 	/**
2102 	 * Update the setting when the #GObject property changes.
2103 	 * It is an error to use this flag if the property is not readable.
2104 	 */
2105 	SET = 2,
2106 	/**
2107 	 * Do not try to bind a "sensitivity" property to the writability of the setting
2108 	 */
2109 	NO_SENSITIVITY = 4,
2110 	/**
2111 	 * When set in addition to #G_SETTINGS_BIND_GET, set the #GObject property
2112 	 * value initially from the setting, but do not listen for changes of the setting
2113 	 */
2114 	GET_NO_CHANGES = 8,
2115 	/**
2116 	 * When passed to g_settings_bind(), uses a pair of mapping functions that invert
2117 	 * the boolean value when mapping between the setting and the property.  The setting and property must both
2118 	 * be booleans.  You cannot pass this flag to g_settings_bind_with_mapping().
2119 	 */
2120 	INVERT_BOOLEAN = 16,
2121 }
2122 alias GSettingsBindFlags SettingsBindFlags;
2123 
2124 /**
2125  * Describes an event occurring on a #GSocketClient. See the
2126  * #GSocketClient::event signal for more details.
2127  *
2128  * Additional values may be added to this type in the future.
2129  *
2130  * Since: 2.32
2131  */
2132 public enum GSocketClientEvent
2133 {
2134 	/**
2135 	 * The client is doing a DNS lookup.
2136 	 */
2137 	RESOLVING = 0,
2138 	/**
2139 	 * The client has completed a DNS lookup.
2140 	 */
2141 	RESOLVED = 1,
2142 	/**
2143 	 * The client is connecting to a remote
2144 	 * host (either a proxy or the destination server).
2145 	 */
2146 	CONNECTING = 2,
2147 	/**
2148 	 * The client has connected to a remote
2149 	 * host.
2150 	 */
2151 	CONNECTED = 3,
2152 	/**
2153 	 * The client is negotiating
2154 	 * with a proxy to connect to the destination server.
2155 	 */
2156 	PROXY_NEGOTIATING = 4,
2157 	/**
2158 	 * The client has negotiated
2159 	 * with the proxy server.
2160 	 */
2161 	PROXY_NEGOTIATED = 5,
2162 	/**
2163 	 * The client is performing a
2164 	 * TLS handshake.
2165 	 */
2166 	TLS_HANDSHAKING = 6,
2167 	/**
2168 	 * The client has performed a
2169 	 * TLS handshake.
2170 	 */
2171 	TLS_HANDSHAKED = 7,
2172 	/**
2173 	 * The client is done with a particular
2174 	 * #GSocketConnectable.
2175 	 */
2176 	COMPLETE = 8,
2177 }
2178 alias GSocketClientEvent SocketClientEvent;
2179 
2180 /**
2181  * The protocol family of a #GSocketAddress. (These values are
2182  * identical to the system defines %AF_INET, %AF_INET6 and %AF_UNIX,
2183  * if available.)
2184  *
2185  * Since: 2.22
2186  */
2187 public enum GSocketFamily
2188 {
2189 	/**
2190 	 * no address family
2191 	 */
2192 	INVALID = 0,
2193 	/**
2194 	 * the UNIX domain family
2195 	 */
2196 	UNIX = 1,
2197 	/**
2198 	 * the IPv4 family
2199 	 */
2200 	IPV4 = 2,
2201 	/**
2202 	 * the IPv6 family
2203 	 */
2204 	IPV6 = 10,
2205 }
2206 alias GSocketFamily SocketFamily;
2207 
2208 /**
2209  * Describes an event occurring on a #GSocketListener. See the
2210  * #GSocketListener::event signal for more details.
2211  *
2212  * Additional values may be added to this type in the future.
2213  *
2214  * Since: 2.46
2215  */
2216 public enum GSocketListenerEvent
2217 {
2218 	/**
2219 	 * The listener is about to bind a socket.
2220 	 */
2221 	BINDING = 0,
2222 	/**
2223 	 * The listener has bound a socket.
2224 	 */
2225 	BOUND = 1,
2226 	/**
2227 	 * The listener is about to start
2228 	 * listening on this socket.
2229 	 */
2230 	LISTENING = 2,
2231 	/**
2232 	 * The listener is now listening on
2233 	 * this socket.
2234 	 */
2235 	LISTENED = 3,
2236 }
2237 alias GSocketListenerEvent SocketListenerEvent;
2238 
2239 /**
2240  * Flags used in g_socket_receive_message() and g_socket_send_message().
2241  * The flags listed in the enum are some commonly available flags, but the
2242  * values used for them are the same as on the platform, and any other flags
2243  * are passed in/out as is. So to use a platform specific flag, just include
2244  * the right system header and pass in the flag.
2245  *
2246  * Since: 2.22
2247  */
2248 public enum GSocketMsgFlags
2249 {
2250 	/**
2251 	 * No flags.
2252 	 */
2253 	NONE = 0,
2254 	/**
2255 	 * Request to send/receive out of band data.
2256 	 */
2257 	OOB = 1,
2258 	/**
2259 	 * Read data from the socket without removing it from
2260 	 * the queue.
2261 	 */
2262 	PEEK = 2,
2263 	/**
2264 	 * Don't use a gateway to send out the packet,
2265 	 * only send to hosts on directly connected networks.
2266 	 */
2267 	DONTROUTE = 4,
2268 }
2269 alias GSocketMsgFlags SocketMsgFlags;
2270 
2271 /**
2272  * A protocol identifier is specified when creating a #GSocket, which is a
2273  * family/type specific identifier, where 0 means the default protocol for
2274  * the particular family/type.
2275  *
2276  * This enum contains a set of commonly available and used protocols. You
2277  * can also pass any other identifiers handled by the platform in order to
2278  * use protocols not listed here.
2279  *
2280  * Since: 2.22
2281  */
2282 public enum GSocketProtocol
2283 {
2284 	/**
2285 	 * The protocol type is unknown
2286 	 */
2287 	UNKNOWN = -1,
2288 	/**
2289 	 * The default protocol for the family/type
2290 	 */
2291 	DEFAULT = 0,
2292 	/**
2293 	 * TCP over IP
2294 	 */
2295 	TCP = 6,
2296 	/**
2297 	 * UDP over IP
2298 	 */
2299 	UDP = 17,
2300 	/**
2301 	 * SCTP over IP
2302 	 */
2303 	SCTP = 132,
2304 }
2305 alias GSocketProtocol SocketProtocol;
2306 
2307 /**
2308  * Flags used when creating a #GSocket. Some protocols may not implement
2309  * all the socket types.
2310  *
2311  * Since: 2.22
2312  */
2313 public enum GSocketType
2314 {
2315 	/**
2316 	 * Type unknown or wrong
2317 	 */
2318 	INVALID = 0,
2319 	/**
2320 	 * Reliable connection-based byte streams (e.g. TCP).
2321 	 */
2322 	STREAM = 1,
2323 	/**
2324 	 * Connectionless, unreliable datagram passing.
2325 	 * (e.g. UDP)
2326 	 */
2327 	DATAGRAM = 2,
2328 	/**
2329 	 * Reliable connection-based passing of datagrams
2330 	 * of fixed maximum length (e.g. SCTP).
2331 	 */
2332 	SEQPACKET = 3,
2333 }
2334 alias GSocketType SocketType;
2335 
2336 /**
2337  * Flags to define the behaviour of a #GSubprocess.
2338  *
2339  * Note that the default for stdin is to redirect from `/dev/null`.  For
2340  * stdout and stderr the default are for them to inherit the
2341  * corresponding descriptor from the calling process.
2342  *
2343  * Note that it is a programmer error to mix 'incompatible' flags.  For
2344  * example, you may not request both %G_SUBPROCESS_FLAGS_STDOUT_PIPE and
2345  * %G_SUBPROCESS_FLAGS_STDOUT_SILENCE.
2346  *
2347  * Since: 2.40
2348  */
2349 public enum GSubprocessFlags
2350 {
2351 	/**
2352 	 * No flags.
2353 	 */
2354 	NONE = 0,
2355 	/**
2356 	 * create a pipe for the stdin of the
2357 	 * spawned process that can be accessed with
2358 	 * g_subprocess_get_stdin_pipe().
2359 	 */
2360 	STDIN_PIPE = 1,
2361 	/**
2362 	 * stdin is inherited from the
2363 	 * calling process.
2364 	 */
2365 	STDIN_INHERIT = 2,
2366 	/**
2367 	 * create a pipe for the stdout of the
2368 	 * spawned process that can be accessed with
2369 	 * g_subprocess_get_stdout_pipe().
2370 	 */
2371 	STDOUT_PIPE = 4,
2372 	/**
2373 	 * silence the stdout of the spawned
2374 	 * process (ie: redirect to `/dev/null`).
2375 	 */
2376 	STDOUT_SILENCE = 8,
2377 	/**
2378 	 * create a pipe for the stderr of the
2379 	 * spawned process that can be accessed with
2380 	 * g_subprocess_get_stderr_pipe().
2381 	 */
2382 	STDERR_PIPE = 16,
2383 	/**
2384 	 * silence the stderr of the spawned
2385 	 * process (ie: redirect to `/dev/null`).
2386 	 */
2387 	STDERR_SILENCE = 32,
2388 	/**
2389 	 * merge the stderr of the spawned
2390 	 * process with whatever the stdout happens to be.  This is a good way
2391 	 * of directing both streams to a common log file, for example.
2392 	 */
2393 	STDERR_MERGE = 64,
2394 	/**
2395 	 * spawned processes will inherit the
2396 	 * file descriptors of their parent, unless those descriptors have
2397 	 * been explicitly marked as close-on-exec.  This flag has no effect
2398 	 * over the "standard" file descriptors (stdin, stdout, stderr).
2399 	 */
2400 	INHERIT_FDS = 128,
2401 }
2402 alias GSubprocessFlags SubprocessFlags;
2403 
2404 /**
2405  * Flags to define future #GTestDBus behaviour.
2406  *
2407  * Since: 2.34
2408  */
2409 public enum GTestDBusFlags
2410 {
2411 	/**
2412 	 * No flags.
2413 	 */
2414 	NONE = 0,
2415 }
2416 alias GTestDBusFlags TestDBusFlags;
2417 
2418 /**
2419  * The client authentication mode for a #GTlsServerConnection.
2420  *
2421  * Since: 2.28
2422  */
2423 public enum GTlsAuthenticationMode
2424 {
2425 	/**
2426 	 * client authentication not required
2427 	 */
2428 	NONE = 0,
2429 	/**
2430 	 * client authentication is requested
2431 	 */
2432 	REQUESTED = 1,
2433 	/**
2434 	 * client authentication is required
2435 	 */
2436 	REQUIRED = 2,
2437 }
2438 alias GTlsAuthenticationMode TlsAuthenticationMode;
2439 
2440 /**
2441  * A set of flags describing TLS certification validation. This can be
2442  * used to set which validation steps to perform (eg, with
2443  * g_tls_client_connection_set_validation_flags()), or to describe why
2444  * a particular certificate was rejected (eg, in
2445  * #GTlsConnection::accept-certificate).
2446  *
2447  * Since: 2.28
2448  */
2449 public enum GTlsCertificateFlags
2450 {
2451 	/**
2452 	 * The signing certificate authority is
2453 	 * not known.
2454 	 */
2455 	UNKNOWN_CA = 1,
2456 	/**
2457 	 * The certificate does not match the
2458 	 * expected identity of the site that it was retrieved from.
2459 	 */
2460 	BAD_IDENTITY = 2,
2461 	/**
2462 	 * The certificate's activation time
2463 	 * is still in the future
2464 	 */
2465 	NOT_ACTIVATED = 4,
2466 	/**
2467 	 * The certificate has expired
2468 	 */
2469 	EXPIRED = 8,
2470 	/**
2471 	 * The certificate has been revoked
2472 	 * according to the #GTlsConnection's certificate revocation list.
2473 	 */
2474 	REVOKED = 16,
2475 	/**
2476 	 * The certificate's algorithm is
2477 	 * considered insecure.
2478 	 */
2479 	INSECURE = 32,
2480 	/**
2481 	 * Some other error occurred validating
2482 	 * the certificate
2483 	 */
2484 	GENERIC_ERROR = 64,
2485 	/**
2486 	 * the combination of all of the above
2487 	 * flags
2488 	 */
2489 	VALIDATE_ALL = 127,
2490 }
2491 alias GTlsCertificateFlags TlsCertificateFlags;
2492 
2493 /**
2494  * Flags for g_tls_interaction_request_certificate(),
2495  * g_tls_interaction_request_certificate_async(), and
2496  * g_tls_interaction_invoke_request_certificate().
2497  *
2498  * Since: 2.40
2499  */
2500 public enum GTlsCertificateRequestFlags
2501 {
2502 	/**
2503 	 * No flags
2504 	 */
2505 	NONE = 0,
2506 }
2507 alias GTlsCertificateRequestFlags TlsCertificateRequestFlags;
2508 
2509 /**
2510  * Flags for g_tls_database_lookup_certificate_for_handle(),
2511  * g_tls_database_lookup_certificate_issuer(),
2512  * and g_tls_database_lookup_certificates_issued_by().
2513  *
2514  * Since: 2.30
2515  */
2516 public enum GTlsDatabaseLookupFlags
2517 {
2518 	/**
2519 	 * No lookup flags
2520 	 */
2521 	NONE = 0,
2522 	/**
2523 	 * Restrict lookup to certificates that have
2524 	 * a private key.
2525 	 */
2526 	KEYPAIR = 1,
2527 }
2528 alias GTlsDatabaseLookupFlags TlsDatabaseLookupFlags;
2529 
2530 /**
2531  * Flags for g_tls_database_verify_chain().
2532  *
2533  * Since: 2.30
2534  */
2535 public enum GTlsDatabaseVerifyFlags
2536 {
2537 	/**
2538 	 * No verification flags
2539 	 */
2540 	NONE = 0,
2541 }
2542 alias GTlsDatabaseVerifyFlags TlsDatabaseVerifyFlags;
2543 
2544 /**
2545  * An error code used with %G_TLS_ERROR in a #GError returned from a
2546  * TLS-related routine.
2547  *
2548  * Since: 2.28
2549  */
2550 public enum GTlsError
2551 {
2552 	/**
2553 	 * No TLS provider is available
2554 	 */
2555 	UNAVAILABLE = 0,
2556 	/**
2557 	 * Miscellaneous TLS error
2558 	 */
2559 	MISC = 1,
2560 	/**
2561 	 * The certificate presented could not
2562 	 * be parsed or failed validation.
2563 	 */
2564 	BAD_CERTIFICATE = 2,
2565 	/**
2566 	 * The TLS handshake failed because the
2567 	 * peer does not seem to be a TLS server.
2568 	 */
2569 	NOT_TLS = 3,
2570 	/**
2571 	 * The TLS handshake failed because the
2572 	 * peer's certificate was not acceptable.
2573 	 */
2574 	HANDSHAKE = 4,
2575 	/**
2576 	 * The TLS handshake failed because
2577 	 * the server requested a client-side certificate, but none was
2578 	 * provided. See g_tls_connection_set_certificate().
2579 	 */
2580 	CERTIFICATE_REQUIRED = 5,
2581 	/**
2582 	 * The TLS connection was closed without proper
2583 	 * notice, which may indicate an attack. See
2584 	 * g_tls_connection_set_require_close_notify().
2585 	 */
2586 	EOF = 6,
2587 	/**
2588 	 * The TLS handshake failed
2589 	 * because the client sent the fallback SCSV, indicating a protocol
2590 	 * downgrade attack. Since: 2.60
2591 	 */
2592 	INAPPROPRIATE_FALLBACK = 7,
2593 }
2594 alias GTlsError TlsError;
2595 
2596 /**
2597  * #GTlsInteractionResult is returned by various functions in #GTlsInteraction
2598  * when finishing an interaction request.
2599  *
2600  * Since: 2.30
2601  */
2602 public enum GTlsInteractionResult
2603 {
2604 	/**
2605 	 * The interaction was unhandled (i.e. not
2606 	 * implemented).
2607 	 */
2608 	UNHANDLED = 0,
2609 	/**
2610 	 * The interaction completed, and resulting data
2611 	 * is available.
2612 	 */
2613 	HANDLED = 1,
2614 	/**
2615 	 * The interaction has failed, or was cancelled.
2616 	 * and the operation should be aborted.
2617 	 */
2618 	FAILED = 2,
2619 }
2620 alias GTlsInteractionResult TlsInteractionResult;
2621 
2622 /**
2623  * Various flags for the password.
2624  *
2625  * Since: 2.30
2626  */
2627 public enum GTlsPasswordFlags
2628 {
2629 	/**
2630 	 * No flags
2631 	 */
2632 	NONE = 0,
2633 	/**
2634 	 * The password was wrong, and the user should retry.
2635 	 */
2636 	RETRY = 2,
2637 	/**
2638 	 * Hint to the user that the password has been
2639 	 * wrong many times, and the user may not have many chances left.
2640 	 */
2641 	MANY_TRIES = 4,
2642 	/**
2643 	 * Hint to the user that this is the last try to get
2644 	 * this password right.
2645 	 */
2646 	FINAL_TRY = 8,
2647 }
2648 alias GTlsPasswordFlags TlsPasswordFlags;
2649 
2650 /**
2651  * When to allow rehandshaking. See
2652  * g_tls_connection_set_rehandshake_mode().
2653  *
2654  * Deprecated: Changing the rehandshake mode is no longer
2655  * required for compatibility. Also, rehandshaking has been removed
2656  * from the TLS protocol in TLS 1.3.
2657  *
2658  * Since: 2.28
2659  */
2660 public enum GTlsRehandshakeMode
2661 {
2662 	/**
2663 	 * Never allow rehandshaking
2664 	 */
2665 	NEVER = 0,
2666 	/**
2667 	 * Allow safe rehandshaking only
2668 	 */
2669 	SAFELY = 1,
2670 	/**
2671 	 * Allow unsafe rehandshaking
2672 	 */
2673 	UNSAFELY = 2,
2674 }
2675 alias GTlsRehandshakeMode TlsRehandshakeMode;
2676 
2677 /**
2678  * The type of name used by a #GUnixSocketAddress.
2679  * %G_UNIX_SOCKET_ADDRESS_PATH indicates a traditional unix domain
2680  * socket bound to a filesystem path. %G_UNIX_SOCKET_ADDRESS_ANONYMOUS
2681  * indicates a socket not bound to any name (eg, a client-side socket,
2682  * or a socket created with socketpair()).
2683  *
2684  * For abstract sockets, there are two incompatible ways of naming
2685  * them; the man pages suggest using the entire `struct sockaddr_un`
2686  * as the name, padding the unused parts of the %sun_path field with
2687  * zeroes; this corresponds to %G_UNIX_SOCKET_ADDRESS_ABSTRACT_PADDED.
2688  * However, many programs instead just use a portion of %sun_path, and
2689  * pass an appropriate smaller length to bind() or connect(). This is
2690  * %G_UNIX_SOCKET_ADDRESS_ABSTRACT.
2691  *
2692  * Since: 2.26
2693  */
2694 public enum GUnixSocketAddressType
2695 {
2696 	/**
2697 	 * invalid
2698 	 */
2699 	INVALID = 0,
2700 	/**
2701 	 * anonymous
2702 	 */
2703 	ANONYMOUS = 1,
2704 	/**
2705 	 * a filesystem path
2706 	 */
2707 	PATH = 2,
2708 	/**
2709 	 * an abstract name
2710 	 */
2711 	ABSTRACT = 3,
2712 	/**
2713 	 * an abstract name, 0-padded
2714 	 * to the full length of a unix socket name
2715 	 */
2716 	ABSTRACT_PADDED = 4,
2717 }
2718 alias GUnixSocketAddressType UnixSocketAddressType;
2719 
2720 /**
2721  * Used to select the type of data format to use for #GZlibDecompressor
2722  * and #GZlibCompressor.
2723  *
2724  * Since: 2.24
2725  */
2726 public enum GZlibCompressorFormat
2727 {
2728 	/**
2729 	 * deflate compression with zlib header
2730 	 */
2731 	ZLIB = 0,
2732 	/**
2733 	 * gzip file format
2734 	 */
2735 	GZIP = 1,
2736 	/**
2737 	 * deflate compression with no header
2738 	 */
2739 	RAW = 2,
2740 }
2741 alias GZlibCompressorFormat ZlibCompressorFormat;
2742 
2743 struct GAction;
2744 
2745 /**
2746  * This struct defines a single action.  It is for use with
2747  * g_action_map_add_action_entries().
2748  *
2749  * The order of the items in the structure are intended to reflect
2750  * frequency of use.  It is permissible to use an incomplete initialiser
2751  * in order to leave some of the later values as %NULL.  All values
2752  * after @name are optional.  Additional optional fields may be added in
2753  * the future.
2754  *
2755  * See g_action_map_add_action_entries() for an example.
2756  */
2757 struct GActionEntry
2758 {
2759 	/**
2760 	 * the name of the action
2761 	 */
2762 	const(char)* name;
2763 	/** */
2764 	extern(C) void function(GSimpleAction* action, GVariant* parameter, void* userData) activate;
2765 	/**
2766 	 * the type of the parameter that must be passed to the
2767 	 * activate function for this action, given as a single
2768 	 * GVariant type string (or %NULL for no parameter)
2769 	 */
2770 	const(char)* parameterType;
2771 	/**
2772 	 * the initial state for this action, given in
2773 	 * [GVariant text format][gvariant-text].  The state is parsed
2774 	 * with no extra type information, so type tags must be added to
2775 	 * the string if they are necessary.  Stateless actions should
2776 	 * give %NULL here.
2777 	 */
2778 	const(char)* state;
2779 	/** */
2780 	extern(C) void function(GSimpleAction* action, GVariant* value, void* userData) changeState;
2781 	size_t[3] padding;
2782 }
2783 
2784 struct GActionGroup;
2785 
2786 /**
2787  * The virtual function table for #GActionGroup.
2788  *
2789  * Since: 2.28
2790  */
2791 struct GActionGroupInterface
2792 {
2793 	GTypeInterface gIface;
2794 	/**
2795 	 *
2796 	 * Params:
2797 	 *     actionGroup = a #GActionGroup
2798 	 *     actionName = the name of the action to check for
2799 	 * Returns: whether the named action exists
2800 	 */
2801 	extern(C) int function(GActionGroup* actionGroup, const(char)* actionName) hasAction;
2802 	/**
2803 	 *
2804 	 * Params:
2805 	 *     actionGroup = a #GActionGroup
2806 	 * Returns: a %NULL-terminated array of the names of the
2807 	 *     actions in the group
2808 	 */
2809 	extern(C) char** function(GActionGroup* actionGroup) listActions;
2810 	/**
2811 	 *
2812 	 * Params:
2813 	 *     actionGroup = a #GActionGroup
2814 	 *     actionName = the name of the action to query
2815 	 * Returns: whether or not the action is currently enabled
2816 	 */
2817 	extern(C) int function(GActionGroup* actionGroup, const(char)* actionName) getActionEnabled;
2818 	/**
2819 	 *
2820 	 * Params:
2821 	 *     actionGroup = a #GActionGroup
2822 	 *     actionName = the name of the action to query
2823 	 * Returns: the parameter type
2824 	 */
2825 	extern(C) GVariantType* function(GActionGroup* actionGroup, const(char)* actionName) getActionParameterType;
2826 	/**
2827 	 *
2828 	 * Params:
2829 	 *     actionGroup = a #GActionGroup
2830 	 *     actionName = the name of the action to query
2831 	 * Returns: the state type, if the action is stateful
2832 	 */
2833 	extern(C) GVariantType* function(GActionGroup* actionGroup, const(char)* actionName) getActionStateType;
2834 	/**
2835 	 *
2836 	 * Params:
2837 	 *     actionGroup = a #GActionGroup
2838 	 *     actionName = the name of the action to query
2839 	 * Returns: the state range hint
2840 	 */
2841 	extern(C) GVariant* function(GActionGroup* actionGroup, const(char)* actionName) getActionStateHint;
2842 	/**
2843 	 *
2844 	 * Params:
2845 	 *     actionGroup = a #GActionGroup
2846 	 *     actionName = the name of the action to query
2847 	 * Returns: the current state of the action
2848 	 */
2849 	extern(C) GVariant* function(GActionGroup* actionGroup, const(char)* actionName) getActionState;
2850 	/** */
2851 	extern(C) void function(GActionGroup* actionGroup, const(char)* actionName, GVariant* value) changeActionState;
2852 	/** */
2853 	extern(C) void function(GActionGroup* actionGroup, const(char)* actionName, GVariant* parameter) activateAction;
2854 	/** */
2855 	extern(C) void function(GActionGroup* actionGroup, const(char)* actionName) actionAdded;
2856 	/** */
2857 	extern(C) void function(GActionGroup* actionGroup, const(char)* actionName) actionRemoved;
2858 	/** */
2859 	extern(C) void function(GActionGroup* actionGroup, const(char)* actionName, int enabled) actionEnabledChanged;
2860 	/** */
2861 	extern(C) void function(GActionGroup* actionGroup, const(char)* actionName, GVariant* state) actionStateChanged;
2862 	/**
2863 	 *
2864 	 * Params:
2865 	 *     actionGroup = a #GActionGroup
2866 	 *     actionName = the name of an action in the group
2867 	 *     enabled = if the action is presently enabled
2868 	 *     parameterType = the parameter type, or %NULL if none needed
2869 	 *     stateType = the state type, or %NULL if stateless
2870 	 *     stateHint = the state hint, or %NULL if none
2871 	 *     state = the current state, or %NULL if stateless
2872 	 * Returns: %TRUE if the action exists, else %FALSE
2873 	 */
2874 	extern(C) int function(GActionGroup* actionGroup, const(char)* actionName, int* enabled, GVariantType** parameterType, GVariantType** stateType, GVariant** stateHint, GVariant** state) queryAction;
2875 }
2876 
2877 /**
2878  * The virtual function table for #GAction.
2879  *
2880  * Since: 2.28
2881  */
2882 struct GActionInterface
2883 {
2884 	GTypeInterface gIface;
2885 	/**
2886 	 *
2887 	 * Params:
2888 	 *     action = a #GAction
2889 	 * Returns: the name of the action
2890 	 */
2891 	extern(C) const(char)* function(GAction* action) getName;
2892 	/**
2893 	 *
2894 	 * Params:
2895 	 *     action = a #GAction
2896 	 * Returns: the parameter type
2897 	 */
2898 	extern(C) GVariantType* function(GAction* action) getParameterType;
2899 	/**
2900 	 *
2901 	 * Params:
2902 	 *     action = a #GAction
2903 	 * Returns: the state type, if the action is stateful
2904 	 */
2905 	extern(C) GVariantType* function(GAction* action) getStateType;
2906 	/**
2907 	 *
2908 	 * Params:
2909 	 *     action = a #GAction
2910 	 * Returns: the state range hint
2911 	 */
2912 	extern(C) GVariant* function(GAction* action) getStateHint;
2913 	/**
2914 	 *
2915 	 * Params:
2916 	 *     action = a #GAction
2917 	 * Returns: whether the action is enabled
2918 	 */
2919 	extern(C) int function(GAction* action) getEnabled;
2920 	/**
2921 	 *
2922 	 * Params:
2923 	 *     action = a #GAction
2924 	 * Returns: the current state of the action
2925 	 */
2926 	extern(C) GVariant* function(GAction* action) getState;
2927 	/** */
2928 	extern(C) void function(GAction* action, GVariant* value) changeState;
2929 	/** */
2930 	extern(C) void function(GAction* action, GVariant* parameter) activate;
2931 }
2932 
2933 struct GActionMap;
2934 
2935 /**
2936  * The virtual function table for #GActionMap.
2937  *
2938  * Since: 2.32
2939  */
2940 struct GActionMapInterface
2941 {
2942 	GTypeInterface gIface;
2943 	/**
2944 	 *
2945 	 * Params:
2946 	 *     actionMap = a #GActionMap
2947 	 *     actionName = the name of an action
2948 	 * Returns: a #GAction, or %NULL
2949 	 */
2950 	extern(C) GAction* function(GActionMap* actionMap, const(char)* actionName) lookupAction;
2951 	/** */
2952 	extern(C) void function(GActionMap* actionMap, GAction* action) addAction;
2953 	/** */
2954 	extern(C) void function(GActionMap* actionMap, const(char)* actionName) removeAction;
2955 }
2956 
2957 struct GAppInfo;
2958 
2959 /**
2960  * Application Information interface, for operating system portability.
2961  */
2962 struct GAppInfoIface
2963 {
2964 	/**
2965 	 * The parent interface.
2966 	 */
2967 	GTypeInterface gIface;
2968 	/**
2969 	 *
2970 	 * Params:
2971 	 *     appinfo = a #GAppInfo.
2972 	 * Returns: a duplicate of @appinfo.
2973 	 */
2974 	extern(C) GAppInfo* function(GAppInfo* appinfo) dup;
2975 	/**
2976 	 *
2977 	 * Params:
2978 	 *     appinfo1 = the first #GAppInfo.
2979 	 *     appinfo2 = the second #GAppInfo.
2980 	 * Returns: %TRUE if @appinfo1 is equal to @appinfo2. %FALSE otherwise.
2981 	 */
2982 	extern(C) int function(GAppInfo* appinfo1, GAppInfo* appinfo2) equal;
2983 	/**
2984 	 *
2985 	 * Params:
2986 	 *     appinfo = a #GAppInfo.
2987 	 * Returns: a string containing the application's ID.
2988 	 */
2989 	extern(C) const(char)* function(GAppInfo* appinfo) getId;
2990 	/**
2991 	 *
2992 	 * Params:
2993 	 *     appinfo = a #GAppInfo.
2994 	 * Returns: the name of the application for @appinfo.
2995 	 */
2996 	extern(C) const(char)* function(GAppInfo* appinfo) getName;
2997 	/**
2998 	 *
2999 	 * Params:
3000 	 *     appinfo = a #GAppInfo.
3001 	 * Returns: a string containing a description of the
3002 	 *     application @appinfo, or %NULL if none.
3003 	 */
3004 	extern(C) const(char)* function(GAppInfo* appinfo) getDescription;
3005 	/** */
3006 	extern(C) const(char)* function(GAppInfo* appinfo) getExecutable;
3007 	/**
3008 	 *
3009 	 * Params:
3010 	 *     appinfo = a #GAppInfo.
3011 	 * Returns: the default #GIcon for @appinfo or %NULL
3012 	 *     if there is no default icon.
3013 	 */
3014 	extern(C) GIcon* function(GAppInfo* appinfo) getIcon;
3015 	/**
3016 	 *
3017 	 * Params:
3018 	 *     appinfo = a #GAppInfo
3019 	 *     files = a #GList of #GFile objects
3020 	 *     context = a #GAppLaunchContext or %NULL
3021 	 * Returns: %TRUE on successful launch, %FALSE otherwise.
3022 	 *
3023 	 * Throws: GException on failure.
3024 	 */
3025 	extern(C) int function(GAppInfo* appinfo, GList* files, GAppLaunchContext* context, GError** err) launch;
3026 	/**
3027 	 *
3028 	 * Params:
3029 	 *     appinfo = a #GAppInfo.
3030 	 * Returns: %TRUE if the @appinfo supports URIs.
3031 	 */
3032 	extern(C) int function(GAppInfo* appinfo) supportsUris;
3033 	/**
3034 	 *
3035 	 * Params:
3036 	 *     appinfo = a #GAppInfo.
3037 	 * Returns: %TRUE if the @appinfo supports files.
3038 	 */
3039 	extern(C) int function(GAppInfo* appinfo) supportsFiles;
3040 	/**
3041 	 *
3042 	 * Params:
3043 	 *     appinfo = a #GAppInfo
3044 	 *     uris = a #GList containing URIs to launch.
3045 	 *     context = a #GAppLaunchContext or %NULL
3046 	 * Returns: %TRUE on successful launch, %FALSE otherwise.
3047 	 *
3048 	 * Throws: GException on failure.
3049 	 */
3050 	extern(C) int function(GAppInfo* appinfo, GList* uris, GAppLaunchContext* context, GError** err) launchUris;
3051 	/**
3052 	 *
3053 	 * Params:
3054 	 *     appinfo = a #GAppInfo.
3055 	 * Returns: %TRUE if the @appinfo should be shown, %FALSE otherwise.
3056 	 */
3057 	extern(C) int function(GAppInfo* appinfo) shouldShow;
3058 	/**
3059 	 *
3060 	 * Params:
3061 	 *     appinfo = a #GAppInfo.
3062 	 *     contentType = the content type.
3063 	 * Returns: %TRUE on success, %FALSE on error.
3064 	 *
3065 	 * Throws: GException on failure.
3066 	 */
3067 	extern(C) int function(GAppInfo* appinfo, const(char)* contentType, GError** err) setAsDefaultForType;
3068 	/**
3069 	 *
3070 	 * Params:
3071 	 *     appinfo = a #GAppInfo.
3072 	 *     extension = a string containing the file extension
3073 	 *         (without the dot).
3074 	 * Returns: %TRUE on success, %FALSE on error.
3075 	 *
3076 	 * Throws: GException on failure.
3077 	 */
3078 	extern(C) int function(GAppInfo* appinfo, char* extension, GError** err) setAsDefaultForExtension;
3079 	/**
3080 	 *
3081 	 * Params:
3082 	 *     appinfo = a #GAppInfo.
3083 	 *     contentType = a string.
3084 	 * Returns: %TRUE on success, %FALSE on error.
3085 	 *
3086 	 * Throws: GException on failure.
3087 	 */
3088 	extern(C) int function(GAppInfo* appinfo, const(char)* contentType, GError** err) addSupportsType;
3089 	/**
3090 	 *
3091 	 * Params:
3092 	 *     appinfo = a #GAppInfo.
3093 	 * Returns: %TRUE if it is possible to remove supported
3094 	 *     content types from a given @appinfo, %FALSE if not.
3095 	 */
3096 	extern(C) int function(GAppInfo* appinfo) canRemoveSupportsType;
3097 	/**
3098 	 *
3099 	 * Params:
3100 	 *     appinfo = a #GAppInfo.
3101 	 *     contentType = a string.
3102 	 * Returns: %TRUE on success, %FALSE on error.
3103 	 *
3104 	 * Throws: GException on failure.
3105 	 */
3106 	extern(C) int function(GAppInfo* appinfo, const(char)* contentType, GError** err) removeSupportsType;
3107 	/**
3108 	 *
3109 	 * Params:
3110 	 *     appinfo = a #GAppInfo
3111 	 * Returns: %TRUE if @appinfo can be deleted
3112 	 */
3113 	extern(C) int function(GAppInfo* appinfo) canDelete;
3114 	/**
3115 	 *
3116 	 * Params:
3117 	 *     appinfo = a #GAppInfo
3118 	 * Returns: %TRUE if @appinfo has been deleted
3119 	 */
3120 	extern(C) int function(GAppInfo* appinfo) doDelete;
3121 	/** */
3122 	extern(C) const(char)* function(GAppInfo* appinfo) getCommandline;
3123 	/**
3124 	 *
3125 	 * Params:
3126 	 *     appinfo = a #GAppInfo.
3127 	 * Returns: the display name of the application for @appinfo, or the name if
3128 	 *     no display name is available.
3129 	 */
3130 	extern(C) const(char)* function(GAppInfo* appinfo) getDisplayName;
3131 	/**
3132 	 *
3133 	 * Params:
3134 	 *     appinfo = a #GAppInfo.
3135 	 *     contentType = the content type.
3136 	 * Returns: %TRUE on success, %FALSE on error.
3137 	 *
3138 	 * Throws: GException on failure.
3139 	 */
3140 	extern(C) int function(GAppInfo* appinfo, const(char)* contentType, GError** err) setAsLastUsedForType;
3141 	/**
3142 	 *
3143 	 * Params:
3144 	 *     appinfo = a #GAppInfo that can handle files
3145 	 * Returns: a list of content types.
3146 	 */
3147 	extern(C) char** function(GAppInfo* appinfo) getSupportedTypes;
3148 	/** */
3149 	extern(C) void function(GAppInfo* appinfo, GList* uris, GAppLaunchContext* context, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) launchUrisAsync;
3150 	/**
3151 	 *
3152 	 * Params:
3153 	 *     appinfo = a #GAppInfo
3154 	 *     result = a #GAsyncResult
3155 	 * Returns: %TRUE on successful launch, %FALSE otherwise.
3156 	 *
3157 	 * Throws: GException on failure.
3158 	 */
3159 	extern(C) int function(GAppInfo* appinfo, GAsyncResult* result, GError** err) launchUrisFinish;
3160 }
3161 
3162 struct GAppInfoMonitor;
3163 
3164 struct GAppLaunchContext
3165 {
3166 	GObject parentInstance;
3167 	GAppLaunchContextPrivate* priv;
3168 }
3169 
3170 struct GAppLaunchContextClass
3171 {
3172 	GObjectClass parentClass;
3173 	/**
3174 	 *
3175 	 * Params:
3176 	 *     context = a #GAppLaunchContext
3177 	 *     info = a #GAppInfo
3178 	 *     files = a #GList of #GFile objects
3179 	 * Returns: a display string for the display.
3180 	 */
3181 	extern(C) char* function(GAppLaunchContext* context, GAppInfo* info, GList* files) getDisplay;
3182 	/**
3183 	 *
3184 	 * Params:
3185 	 *     context = a #GAppLaunchContext
3186 	 *     info = a #GAppInfo
3187 	 *     files = a #GList of of #GFile objects
3188 	 * Returns: a startup notification ID for the application, or %NULL if
3189 	 *     not supported.
3190 	 */
3191 	extern(C) char* function(GAppLaunchContext* context, GAppInfo* info, GList* files) getStartupNotifyId;
3192 	/** */
3193 	extern(C) void function(GAppLaunchContext* context, const(char)* startupNotifyId) launchFailed;
3194 	/** */
3195 	extern(C) void function(GAppLaunchContext* context, GAppInfo* info, GVariant* platformData) launched;
3196 	/** */
3197 	extern(C) void function() GReserved1;
3198 	/** */
3199 	extern(C) void function() GReserved2;
3200 	/** */
3201 	extern(C) void function() GReserved3;
3202 	/** */
3203 	extern(C) void function() GReserved4;
3204 }
3205 
3206 struct GAppLaunchContextPrivate;
3207 
3208 struct GApplication
3209 {
3210 	GObject parentInstance;
3211 	GApplicationPrivate* priv;
3212 }
3213 
3214 /**
3215  * Virtual function table for #GApplication.
3216  *
3217  * Since: 2.28
3218  */
3219 struct GApplicationClass
3220 {
3221 	GObjectClass parentClass;
3222 	/** */
3223 	extern(C) void function(GApplication* application) startup;
3224 	/** */
3225 	extern(C) void function(GApplication* application) activate;
3226 	/** */
3227 	extern(C) void function(GApplication* application, GFile** files, int nFiles, const(char)* hint) open;
3228 	/** */
3229 	extern(C) int function(GApplication* application, GApplicationCommandLine* commandLine) commandLine;
3230 	/**
3231 	 *
3232 	 * Params:
3233 	 *     application = a #GApplication
3234 	 *     arguments = array of command line arguments
3235 	 *     exitStatus = exit status to fill after processing the command line.
3236 	 * Returns: %TRUE if the commandline has been completely handled
3237 	 */
3238 	extern(C) int function(GApplication* application, char*** arguments, int* exitStatus) localCommandLine;
3239 	/** */
3240 	extern(C) void function(GApplication* application, GVariant* platformData) beforeEmit;
3241 	/** */
3242 	extern(C) void function(GApplication* application, GVariant* platformData) afterEmit;
3243 	/** */
3244 	extern(C) void function(GApplication* application, GVariantBuilder* builder) addPlatformData;
3245 	/** */
3246 	extern(C) void function(GApplication* application) quitMainloop;
3247 	/** */
3248 	extern(C) void function(GApplication* application) runMainloop;
3249 	/** */
3250 	extern(C) void function(GApplication* application) shutdown;
3251 	/** */
3252 	extern(C) int function(GApplication* application, GDBusConnection* connection, const(char)* objectPath, GError** err) dbusRegister;
3253 	/** */
3254 	extern(C) void function(GApplication* application, GDBusConnection* connection, const(char)* objectPath) dbusUnregister;
3255 	/** */
3256 	extern(C) int function(GApplication* application, GVariantDict* options) handleLocalOptions;
3257 	/** */
3258 	extern(C) int function(GApplication* application) nameLost;
3259 	void*[7] padding;
3260 }
3261 
3262 struct GApplicationCommandLine
3263 {
3264 	GObject parentInstance;
3265 	GApplicationCommandLinePrivate* priv;
3266 }
3267 
3268 /**
3269  * The #GApplicationCommandLineClass-struct
3270  * contains private data only.
3271  *
3272  * Since: 2.28
3273  */
3274 struct GApplicationCommandLineClass
3275 {
3276 	GObjectClass parentClass;
3277 	/** */
3278 	extern(C) void function(GApplicationCommandLine* cmdline, const(char)* message) printLiteral;
3279 	/** */
3280 	extern(C) void function(GApplicationCommandLine* cmdline, const(char)* message) printerrLiteral;
3281 	/**
3282 	 *
3283 	 * Params:
3284 	 *     cmdline = a #GApplicationCommandLine
3285 	 * Returns: a #GInputStream for stdin
3286 	 */
3287 	extern(C) GInputStream* function(GApplicationCommandLine* cmdline) getStdin;
3288 	void*[11] padding;
3289 }
3290 
3291 struct GApplicationCommandLinePrivate;
3292 
3293 struct GApplicationPrivate;
3294 
3295 struct GAsyncInitable;
3296 
3297 /**
3298  * Provides an interface for asynchronous initializing object such that
3299  * initialization may fail.
3300  *
3301  * Since: 2.22
3302  */
3303 struct GAsyncInitableIface
3304 {
3305 	/**
3306 	 * The parent interface.
3307 	 */
3308 	GTypeInterface gIface;
3309 	/** */
3310 	extern(C) void function(GAsyncInitable* initable, int ioPriority, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) initAsync;
3311 	/**
3312 	 *
3313 	 * Params:
3314 	 *     initable = a #GAsyncInitable.
3315 	 *     res = a #GAsyncResult.
3316 	 * Returns: %TRUE if successful. If an error has occurred, this function
3317 	 *     will return %FALSE and set @error appropriately if present.
3318 	 *
3319 	 * Throws: GException on failure.
3320 	 */
3321 	extern(C) int function(GAsyncInitable* initable, GAsyncResult* res, GError** err) initFinish;
3322 }
3323 
3324 struct GAsyncResult;
3325 
3326 /**
3327  * Interface definition for #GAsyncResult.
3328  */
3329 struct GAsyncResultIface
3330 {
3331 	/**
3332 	 * The parent interface.
3333 	 */
3334 	GTypeInterface gIface;
3335 	/**
3336 	 *
3337 	 * Params:
3338 	 *     res = a #GAsyncResult.
3339 	 * Returns: the user data for @res.
3340 	 */
3341 	extern(C) void* function(GAsyncResult* res) getUserData;
3342 	/**
3343 	 *
3344 	 * Params:
3345 	 *     res = a #GAsyncResult
3346 	 * Returns: a new reference to the source
3347 	 *     object for the @res, or %NULL if there is none.
3348 	 */
3349 	extern(C) GObject* function(GAsyncResult* res) getSourceObject;
3350 	/**
3351 	 *
3352 	 * Params:
3353 	 *     res = a #GAsyncResult
3354 	 *     sourceTag = an application-defined tag
3355 	 * Returns: %TRUE if @res has the indicated @source_tag, %FALSE if
3356 	 *     not.
3357 	 */
3358 	extern(C) int function(GAsyncResult* res, void* sourceTag) isTagged;
3359 }
3360 
3361 struct GBufferedInputStream
3362 {
3363 	GFilterInputStream parentInstance;
3364 	GBufferedInputStreamPrivate* priv;
3365 }
3366 
3367 struct GBufferedInputStreamClass
3368 {
3369 	GFilterInputStreamClass parentClass;
3370 	/**
3371 	 *
3372 	 * Params:
3373 	 *     stream = a #GBufferedInputStream
3374 	 *     count = the number of bytes that will be read from the stream
3375 	 *     cancellable = optional #GCancellable object, %NULL to ignore
3376 	 * Returns: the number of bytes read into @stream's buffer, up to @count,
3377 	 *     or -1 on error.
3378 	 *
3379 	 * Throws: GException on failure.
3380 	 */
3381 	extern(C) ptrdiff_t function(GBufferedInputStream* stream, ptrdiff_t count, GCancellable* cancellable, GError** err) fill;
3382 	/** */
3383 	extern(C) void function(GBufferedInputStream* stream, ptrdiff_t count, int ioPriority, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) fillAsync;
3384 	/**
3385 	 *
3386 	 * Params:
3387 	 *     stream = a #GBufferedInputStream
3388 	 *     result = a #GAsyncResult
3389 	 * Returns: a #gssize of the read stream, or `-1` on an error.
3390 	 *
3391 	 * Throws: GException on failure.
3392 	 */
3393 	extern(C) ptrdiff_t function(GBufferedInputStream* stream, GAsyncResult* result, GError** err) fillFinish;
3394 	/** */
3395 	extern(C) void function() GReserved1;
3396 	/** */
3397 	extern(C) void function() GReserved2;
3398 	/** */
3399 	extern(C) void function() GReserved3;
3400 	/** */
3401 	extern(C) void function() GReserved4;
3402 	/** */
3403 	extern(C) void function() GReserved5;
3404 }
3405 
3406 struct GBufferedInputStreamPrivate;
3407 
3408 struct GBufferedOutputStream
3409 {
3410 	GFilterOutputStream parentInstance;
3411 	GBufferedOutputStreamPrivate* priv;
3412 }
3413 
3414 struct GBufferedOutputStreamClass
3415 {
3416 	GFilterOutputStreamClass parentClass;
3417 	/** */
3418 	extern(C) void function() GReserved1;
3419 	/** */
3420 	extern(C) void function() GReserved2;
3421 }
3422 
3423 struct GBufferedOutputStreamPrivate;
3424 
3425 struct GBytesIcon;
3426 
3427 struct GCancellable
3428 {
3429 	GObject parentInstance;
3430 	GCancellablePrivate* priv;
3431 }
3432 
3433 struct GCancellableClass
3434 {
3435 	GObjectClass parentClass;
3436 	/** */
3437 	extern(C) void function(GCancellable* cancellable) cancelled;
3438 	/** */
3439 	extern(C) void function() GReserved1;
3440 	/** */
3441 	extern(C) void function() GReserved2;
3442 	/** */
3443 	extern(C) void function() GReserved3;
3444 	/** */
3445 	extern(C) void function() GReserved4;
3446 	/** */
3447 	extern(C) void function() GReserved5;
3448 }
3449 
3450 struct GCancellablePrivate;
3451 
3452 struct GCharsetConverter;
3453 
3454 struct GCharsetConverterClass
3455 {
3456 	GObjectClass parentClass;
3457 }
3458 
3459 struct GConverter;
3460 
3461 /**
3462  * Provides an interface for converting data from one type
3463  * to another type. The conversion can be stateful
3464  * and may fail at any place.
3465  *
3466  * Since: 2.24
3467  */
3468 struct GConverterIface
3469 {
3470 	/**
3471 	 * The parent interface.
3472 	 */
3473 	GTypeInterface gIface;
3474 	/**
3475 	 *
3476 	 * Params:
3477 	 *     converter = a #GConverter.
3478 	 *     inbuf = the buffer
3479 	 *         containing the data to convert.
3480 	 *     inbufSize = the number of bytes in @inbuf
3481 	 *     outbuf = a buffer to write
3482 	 *         converted data in.
3483 	 *     outbufSize = the number of bytes in @outbuf, must be at least one
3484 	 *     flags = a #GConverterFlags controlling the conversion details
3485 	 *     bytesRead = will be set to the number of bytes read from @inbuf on success
3486 	 *     bytesWritten = will be set to the number of bytes written to @outbuf on success
3487 	 * Returns: a #GConverterResult, %G_CONVERTER_ERROR on error.
3488 	 *
3489 	 * Throws: GException on failure.
3490 	 */
3491 	extern(C) GConverterResult function(GConverter* converter, void* inbuf, size_t inbufSize, void* outbuf, size_t outbufSize, GConverterFlags flags, size_t* bytesRead, size_t* bytesWritten, GError** err) convert;
3492 	/** */
3493 	extern(C) void function(GConverter* converter) reset;
3494 }
3495 
3496 struct GConverterInputStream
3497 {
3498 	GFilterInputStream parentInstance;
3499 	GConverterInputStreamPrivate* priv;
3500 }
3501 
3502 struct GConverterInputStreamClass
3503 {
3504 	GFilterInputStreamClass parentClass;
3505 	/** */
3506 	extern(C) void function() GReserved1;
3507 	/** */
3508 	extern(C) void function() GReserved2;
3509 	/** */
3510 	extern(C) void function() GReserved3;
3511 	/** */
3512 	extern(C) void function() GReserved4;
3513 	/** */
3514 	extern(C) void function() GReserved5;
3515 }
3516 
3517 struct GConverterInputStreamPrivate;
3518 
3519 struct GConverterOutputStream
3520 {
3521 	GFilterOutputStream parentInstance;
3522 	GConverterOutputStreamPrivate* priv;
3523 }
3524 
3525 struct GConverterOutputStreamClass
3526 {
3527 	GFilterOutputStreamClass parentClass;
3528 	/** */
3529 	extern(C) void function() GReserved1;
3530 	/** */
3531 	extern(C) void function() GReserved2;
3532 	/** */
3533 	extern(C) void function() GReserved3;
3534 	/** */
3535 	extern(C) void function() GReserved4;
3536 	/** */
3537 	extern(C) void function() GReserved5;
3538 }
3539 
3540 struct GConverterOutputStreamPrivate;
3541 
3542 struct GCredentials;
3543 
3544 /**
3545  * Class structure for #GCredentials.
3546  *
3547  * Since: 2.26
3548  */
3549 struct GCredentialsClass;
3550 
3551 struct GDBusActionGroup;
3552 
3553 struct GDBusAnnotationInfo
3554 {
3555 	/**
3556 	 * The reference count or -1 if statically allocated.
3557 	 */
3558 	int refCount;
3559 	/**
3560 	 * The name of the annotation, e.g. "org.freedesktop.DBus.Deprecated".
3561 	 */
3562 	char* key;
3563 	/**
3564 	 * The value of the annotation.
3565 	 */
3566 	char* value;
3567 	/**
3568 	 * A pointer to a %NULL-terminated array of pointers to #GDBusAnnotationInfo structures or %NULL if there are no annotations.
3569 	 */
3570 	GDBusAnnotationInfo** annotations;
3571 }
3572 
3573 struct GDBusArgInfo
3574 {
3575 	/**
3576 	 * The reference count or -1 if statically allocated.
3577 	 */
3578 	int refCount;
3579 	/**
3580 	 * Name of the argument, e.g. @unix_user_id.
3581 	 */
3582 	char* name;
3583 	/**
3584 	 * D-Bus signature of the argument (a single complete type).
3585 	 */
3586 	char* signature;
3587 	/**
3588 	 * A pointer to a %NULL-terminated array of pointers to #GDBusAnnotationInfo structures or %NULL if there are no annotations.
3589 	 */
3590 	GDBusAnnotationInfo** annotations;
3591 }
3592 
3593 struct GDBusAuthObserver;
3594 
3595 struct GDBusConnection;
3596 
3597 /**
3598  * Struct used in g_dbus_error_register_error_domain().
3599  *
3600  * Since: 2.26
3601  */
3602 struct GDBusErrorEntry
3603 {
3604 	/**
3605 	 * An error code.
3606 	 */
3607 	int errorCode;
3608 	/**
3609 	 * The D-Bus error name to associate with @error_code.
3610 	 */
3611 	const(char)* dbusErrorName;
3612 }
3613 
3614 struct GDBusInterface;
3615 
3616 /**
3617  * Base type for D-Bus interfaces.
3618  *
3619  * Since: 2.30
3620  */
3621 struct GDBusInterfaceIface
3622 {
3623 	/**
3624 	 * The parent interface.
3625 	 */
3626 	GTypeInterface parentIface;
3627 	/**
3628 	 *
3629 	 * Params:
3630 	 *     interface_ = An exported D-Bus interface.
3631 	 * Returns: A #GDBusInterfaceInfo. Do not free.
3632 	 */
3633 	extern(C) GDBusInterfaceInfo* function(GDBusInterface* interface_) getInfo;
3634 	/**
3635 	 *
3636 	 * Params:
3637 	 *     interface_ = An exported D-Bus interface
3638 	 * Returns: A #GDBusObject or %NULL. The returned
3639 	 *     reference belongs to @interface_ and should not be freed.
3640 	 */
3641 	extern(C) GDBusObject* function(GDBusInterface* interface_) getObject;
3642 	/** */
3643 	extern(C) void function(GDBusInterface* interface_, GDBusObject* object) setObject;
3644 	/**
3645 	 *
3646 	 * Params:
3647 	 *     interface_ = An exported D-Bus interface.
3648 	 * Returns: A #GDBusObject or %NULL. The returned
3649 	 *     reference should be freed with g_object_unref().
3650 	 */
3651 	extern(C) GDBusObject* function(GDBusInterface* interface_) dupObject;
3652 }
3653 
3654 struct GDBusInterfaceInfo
3655 {
3656 	/**
3657 	 * The reference count or -1 if statically allocated.
3658 	 */
3659 	int refCount;
3660 	/**
3661 	 * The name of the D-Bus interface, e.g. "org.freedesktop.DBus.Properties".
3662 	 */
3663 	char* name;
3664 	/**
3665 	 * A pointer to a %NULL-terminated array of pointers to #GDBusMethodInfo structures or %NULL if there are no methods.
3666 	 */
3667 	GDBusMethodInfo** methods;
3668 	/**
3669 	 * A pointer to a %NULL-terminated array of pointers to #GDBusSignalInfo structures or %NULL if there are no signals.
3670 	 */
3671 	GDBusSignalInfo** signals;
3672 	/**
3673 	 * A pointer to a %NULL-terminated array of pointers to #GDBusPropertyInfo structures or %NULL if there are no properties.
3674 	 */
3675 	GDBusPropertyInfo** properties;
3676 	/**
3677 	 * A pointer to a %NULL-terminated array of pointers to #GDBusAnnotationInfo structures or %NULL if there are no annotations.
3678 	 */
3679 	GDBusAnnotationInfo** annotations;
3680 }
3681 
3682 struct GDBusInterfaceSkeleton
3683 {
3684 	GObject parentInstance;
3685 	GDBusInterfaceSkeletonPrivate* priv;
3686 }
3687 
3688 /**
3689  * Class structure for #GDBusInterfaceSkeleton.
3690  *
3691  * Since: 2.30
3692  */
3693 struct GDBusInterfaceSkeletonClass
3694 {
3695 	/**
3696 	 * The parent class.
3697 	 */
3698 	GObjectClass parentClass;
3699 	/**
3700 	 *
3701 	 * Params:
3702 	 *     interface_ = A #GDBusInterfaceSkeleton.
3703 	 * Returns: A #GDBusInterfaceInfo (never %NULL). Do not free.
3704 	 */
3705 	extern(C) GDBusInterfaceInfo* function(GDBusInterfaceSkeleton* interface_) getInfo;
3706 	/**
3707 	 *
3708 	 * Params:
3709 	 *     interface_ = A #GDBusInterfaceSkeleton.
3710 	 * Returns: A #GDBusInterfaceVTable (never %NULL).
3711 	 */
3712 	extern(C) GDBusInterfaceVTable* function(GDBusInterfaceSkeleton* interface_) getVtable;
3713 	/**
3714 	 *
3715 	 * Params:
3716 	 *     interface_ = A #GDBusInterfaceSkeleton.
3717 	 * Returns: A #GVariant of type
3718 	 *     ['a{sv}'][G-VARIANT-TYPE-VARDICT:CAPS].
3719 	 *     Free with g_variant_unref().
3720 	 */
3721 	extern(C) GVariant* function(GDBusInterfaceSkeleton* interface_) getProperties;
3722 	/** */
3723 	extern(C) void function(GDBusInterfaceSkeleton* interface_) flush;
3724 	void*[8] vfuncPadding;
3725 	/** */
3726 	extern(C) int function(GDBusInterfaceSkeleton* interface_, GDBusMethodInvocation* invocation) gAuthorizeMethod;
3727 	void*[8] signalPadding;
3728 }
3729 
3730 struct GDBusInterfaceSkeletonPrivate;
3731 
3732 /**
3733  * Virtual table for handling properties and method calls for a D-Bus
3734  * interface.
3735  *
3736  * Since 2.38, if you want to handle getting/setting D-Bus properties
3737  * asynchronously, give %NULL as your get_property() or set_property()
3738  * function. The D-Bus call will be directed to your @method_call function,
3739  * with the provided @interface_name set to "org.freedesktop.DBus.Properties".
3740  *
3741  * Ownership of the #GDBusMethodInvocation object passed to the
3742  * method_call() function is transferred to your handler; you must
3743  * call one of the methods of #GDBusMethodInvocation to return a reply
3744  * (possibly empty), or an error. These functions also take ownership
3745  * of the passed-in invocation object, so unless the invocation
3746  * object has otherwise been referenced, it will be then be freed.
3747  * Calling one of these functions may be done within your
3748  * method_call() implementation but it also can be done at a later
3749  * point to handle the method asynchronously.
3750  *
3751  * The usual checks on the validity of the calls is performed. For
3752  * `Get` calls, an error is automatically returned if the property does
3753  * not exist or the permissions do not allow access. The same checks are
3754  * performed for `Set` calls, and the provided value is also checked for
3755  * being the correct type.
3756  *
3757  * For both `Get` and `Set` calls, the #GDBusMethodInvocation
3758  * passed to the @method_call handler can be queried with
3759  * g_dbus_method_invocation_get_property_info() to get a pointer
3760  * to the #GDBusPropertyInfo of the property.
3761  *
3762  * If you have readable properties specified in your interface info,
3763  * you must ensure that you either provide a non-%NULL @get_property()
3764  * function or provide implementations of both the `Get` and `GetAll`
3765  * methods on org.freedesktop.DBus.Properties interface in your @method_call
3766  * function. Note that the required return type of the `Get` call is
3767  * `(v)`, not the type of the property. `GetAll` expects a return value
3768  * of type `a{sv}`.
3769  *
3770  * If you have writable properties specified in your interface info,
3771  * you must ensure that you either provide a non-%NULL @set_property()
3772  * function or provide an implementation of the `Set` call. If implementing
3773  * the call, you must return the value of type %G_VARIANT_TYPE_UNIT.
3774  *
3775  * Since: 2.26
3776  */
3777 struct GDBusInterfaceVTable
3778 {
3779 	/**
3780 	 * Function for handling incoming method calls.
3781 	 */
3782 	GDBusInterfaceMethodCallFunc methodCall;
3783 	/**
3784 	 * Function for getting a property.
3785 	 */
3786 	GDBusInterfaceGetPropertyFunc getProperty;
3787 	/**
3788 	 * Function for setting a property.
3789 	 */
3790 	GDBusInterfaceSetPropertyFunc setProperty;
3791 	void*[8] padding;
3792 }
3793 
3794 struct GDBusMenuModel;
3795 
3796 struct GDBusMessage;
3797 
3798 struct GDBusMethodInfo
3799 {
3800 	/**
3801 	 * The reference count or -1 if statically allocated.
3802 	 */
3803 	int refCount;
3804 	/**
3805 	 * The name of the D-Bus method, e.g. @RequestName.
3806 	 */
3807 	char* name;
3808 	/**
3809 	 * A pointer to a %NULL-terminated array of pointers to #GDBusArgInfo structures or %NULL if there are no in arguments.
3810 	 */
3811 	GDBusArgInfo** inArgs;
3812 	/**
3813 	 * A pointer to a %NULL-terminated array of pointers to #GDBusArgInfo structures or %NULL if there are no out arguments.
3814 	 */
3815 	GDBusArgInfo** outArgs;
3816 	/**
3817 	 * A pointer to a %NULL-terminated array of pointers to #GDBusAnnotationInfo structures or %NULL if there are no annotations.
3818 	 */
3819 	GDBusAnnotationInfo** annotations;
3820 }
3821 
3822 struct GDBusMethodInvocation;
3823 
3824 struct GDBusNodeInfo
3825 {
3826 	/**
3827 	 * The reference count or -1 if statically allocated.
3828 	 */
3829 	int refCount;
3830 	/**
3831 	 * The path of the node or %NULL if omitted. Note that this may be a relative path. See the D-Bus specification for more details.
3832 	 */
3833 	char* path;
3834 	/**
3835 	 * A pointer to a %NULL-terminated array of pointers to #GDBusInterfaceInfo structures or %NULL if there are no interfaces.
3836 	 */
3837 	GDBusInterfaceInfo** interfaces;
3838 	/**
3839 	 * A pointer to a %NULL-terminated array of pointers to #GDBusNodeInfo structures or %NULL if there are no nodes.
3840 	 */
3841 	GDBusNodeInfo** nodes;
3842 	/**
3843 	 * A pointer to a %NULL-terminated array of pointers to #GDBusAnnotationInfo structures or %NULL if there are no annotations.
3844 	 */
3845 	GDBusAnnotationInfo** annotations;
3846 }
3847 
3848 struct GDBusObject;
3849 
3850 /**
3851  * Base object type for D-Bus objects.
3852  *
3853  * Since: 2.30
3854  */
3855 struct GDBusObjectIface
3856 {
3857 	/**
3858 	 * The parent interface.
3859 	 */
3860 	GTypeInterface parentIface;
3861 	/**
3862 	 *
3863 	 * Params:
3864 	 *     object = A #GDBusObject.
3865 	 * Returns: A string owned by @object. Do not free.
3866 	 */
3867 	extern(C) const(char)* function(GDBusObject* object) getObjectPath;
3868 	/**
3869 	 *
3870 	 * Params:
3871 	 *     object = A #GDBusObject.
3872 	 * Returns: A list of #GDBusInterface instances.
3873 	 *     The returned list must be freed by g_list_free() after each element has been freed
3874 	 *     with g_object_unref().
3875 	 */
3876 	extern(C) GList* function(GDBusObject* object) getInterfaces;
3877 	/**
3878 	 *
3879 	 * Params:
3880 	 *     object = A #GDBusObject.
3881 	 *     interfaceName = A D-Bus interface name.
3882 	 * Returns: %NULL if not found, otherwise a
3883 	 *     #GDBusInterface that must be freed with g_object_unref().
3884 	 */
3885 	extern(C) GDBusInterface* function(GDBusObject* object, const(char)* interfaceName) getInterface;
3886 	/** */
3887 	extern(C) void function(GDBusObject* object, GDBusInterface* interface_) interfaceAdded;
3888 	/** */
3889 	extern(C) void function(GDBusObject* object, GDBusInterface* interface_) interfaceRemoved;
3890 }
3891 
3892 struct GDBusObjectManager;
3893 
3894 struct GDBusObjectManagerClient
3895 {
3896 	GObject parentInstance;
3897 	GDBusObjectManagerClientPrivate* priv;
3898 }
3899 
3900 /**
3901  * Class structure for #GDBusObjectManagerClient.
3902  *
3903  * Since: 2.30
3904  */
3905 struct GDBusObjectManagerClientClass
3906 {
3907 	/**
3908 	 * The parent class.
3909 	 */
3910 	GObjectClass parentClass;
3911 	/** */
3912 	extern(C) void function(GDBusObjectManagerClient* manager, GDBusObjectProxy* objectProxy, GDBusProxy* interfaceProxy, const(char)* senderName, const(char)* signalName, GVariant* parameters) interfaceProxySignal;
3913 	/** */
3914 	extern(C) void function(GDBusObjectManagerClient* manager, GDBusObjectProxy* objectProxy, GDBusProxy* interfaceProxy, GVariant* changedProperties, const(char)* invalidatedProperties) interfaceProxyPropertiesChanged;
3915 	void*[8] padding;
3916 }
3917 
3918 struct GDBusObjectManagerClientPrivate;
3919 
3920 /**
3921  * Base type for D-Bus object managers.
3922  *
3923  * Since: 2.30
3924  */
3925 struct GDBusObjectManagerIface
3926 {
3927 	/**
3928 	 * The parent interface.
3929 	 */
3930 	GTypeInterface parentIface;
3931 	/**
3932 	 *
3933 	 * Params:
3934 	 *     manager = A #GDBusObjectManager.
3935 	 * Returns: A string owned by @manager. Do not free.
3936 	 */
3937 	extern(C) const(char)* function(GDBusObjectManager* manager) getObjectPath;
3938 	/**
3939 	 *
3940 	 * Params:
3941 	 *     manager = A #GDBusObjectManager.
3942 	 * Returns: A list of
3943 	 *     #GDBusObject objects. The returned list should be freed with
3944 	 *     g_list_free() after each element has been freed with
3945 	 *     g_object_unref().
3946 	 */
3947 	extern(C) GList* function(GDBusObjectManager* manager) getObjects;
3948 	/**
3949 	 *
3950 	 * Params:
3951 	 *     manager = A #GDBusObjectManager.
3952 	 *     objectPath = Object path to look up.
3953 	 * Returns: A #GDBusObject or %NULL. Free with
3954 	 *     g_object_unref().
3955 	 */
3956 	extern(C) GDBusObject* function(GDBusObjectManager* manager, const(char)* objectPath) getObject;
3957 	/**
3958 	 *
3959 	 * Params:
3960 	 *     manager = A #GDBusObjectManager.
3961 	 *     objectPath = Object path to look up.
3962 	 *     interfaceName = D-Bus interface name to look up.
3963 	 * Returns: A #GDBusInterface instance or %NULL. Free
3964 	 *     with g_object_unref().
3965 	 */
3966 	extern(C) GDBusInterface* function(GDBusObjectManager* manager, const(char)* objectPath, const(char)* interfaceName) getInterface;
3967 	/** */
3968 	extern(C) void function(GDBusObjectManager* manager, GDBusObject* object) objectAdded;
3969 	/** */
3970 	extern(C) void function(GDBusObjectManager* manager, GDBusObject* object) objectRemoved;
3971 	/** */
3972 	extern(C) void function(GDBusObjectManager* manager, GDBusObject* object, GDBusInterface* interface_) interfaceAdded;
3973 	/** */
3974 	extern(C) void function(GDBusObjectManager* manager, GDBusObject* object, GDBusInterface* interface_) interfaceRemoved;
3975 }
3976 
3977 struct GDBusObjectManagerServer
3978 {
3979 	GObject parentInstance;
3980 	GDBusObjectManagerServerPrivate* priv;
3981 }
3982 
3983 /**
3984  * Class structure for #GDBusObjectManagerServer.
3985  *
3986  * Since: 2.30
3987  */
3988 struct GDBusObjectManagerServerClass
3989 {
3990 	/**
3991 	 * The parent class.
3992 	 */
3993 	GObjectClass parentClass;
3994 	void*[8] padding;
3995 }
3996 
3997 struct GDBusObjectManagerServerPrivate;
3998 
3999 struct GDBusObjectProxy
4000 {
4001 	GObject parentInstance;
4002 	GDBusObjectProxyPrivate* priv;
4003 }
4004 
4005 /**
4006  * Class structure for #GDBusObjectProxy.
4007  *
4008  * Since: 2.30
4009  */
4010 struct GDBusObjectProxyClass
4011 {
4012 	/**
4013 	 * The parent class.
4014 	 */
4015 	GObjectClass parentClass;
4016 	void*[8] padding;
4017 }
4018 
4019 struct GDBusObjectProxyPrivate;
4020 
4021 struct GDBusObjectSkeleton
4022 {
4023 	GObject parentInstance;
4024 	GDBusObjectSkeletonPrivate* priv;
4025 }
4026 
4027 /**
4028  * Class structure for #GDBusObjectSkeleton.
4029  *
4030  * Since: 2.30
4031  */
4032 struct GDBusObjectSkeletonClass
4033 {
4034 	/**
4035 	 * The parent class.
4036 	 */
4037 	GObjectClass parentClass;
4038 	/** */
4039 	extern(C) int function(GDBusObjectSkeleton* object, GDBusInterfaceSkeleton* interface_, GDBusMethodInvocation* invocation) authorizeMethod;
4040 	void*[8] padding;
4041 }
4042 
4043 struct GDBusObjectSkeletonPrivate;
4044 
4045 struct GDBusPropertyInfo
4046 {
4047 	/**
4048 	 * The reference count or -1 if statically allocated.
4049 	 */
4050 	int refCount;
4051 	/**
4052 	 * The name of the D-Bus property, e.g. "SupportedFilesystems".
4053 	 */
4054 	char* name;
4055 	/**
4056 	 * The D-Bus signature of the property (a single complete type).
4057 	 */
4058 	char* signature;
4059 	/**
4060 	 * Access control flags for the property.
4061 	 */
4062 	GDBusPropertyInfoFlags flags;
4063 	/**
4064 	 * A pointer to a %NULL-terminated array of pointers to #GDBusAnnotationInfo structures or %NULL if there are no annotations.
4065 	 */
4066 	GDBusAnnotationInfo** annotations;
4067 }
4068 
4069 struct GDBusProxy
4070 {
4071 	GObject parentInstance;
4072 	GDBusProxyPrivate* priv;
4073 }
4074 
4075 /**
4076  * Class structure for #GDBusProxy.
4077  *
4078  * Since: 2.26
4079  */
4080 struct GDBusProxyClass
4081 {
4082 	GObjectClass parentClass;
4083 	/** */
4084 	extern(C) void function(GDBusProxy* proxy, GVariant* changedProperties, const(char)* invalidatedProperties) gPropertiesChanged;
4085 	/** */
4086 	extern(C) void function(GDBusProxy* proxy, const(char)* senderName, const(char)* signalName, GVariant* parameters) gSignal;
4087 	void*[32] padding;
4088 }
4089 
4090 struct GDBusProxyPrivate;
4091 
4092 struct GDBusServer;
4093 
4094 struct GDBusSignalInfo
4095 {
4096 	/**
4097 	 * The reference count or -1 if statically allocated.
4098 	 */
4099 	int refCount;
4100 	/**
4101 	 * The name of the D-Bus signal, e.g. "NameOwnerChanged".
4102 	 */
4103 	char* name;
4104 	/**
4105 	 * A pointer to a %NULL-terminated array of pointers to #GDBusArgInfo structures or %NULL if there are no arguments.
4106 	 */
4107 	GDBusArgInfo** args;
4108 	/**
4109 	 * A pointer to a %NULL-terminated array of pointers to #GDBusAnnotationInfo structures or %NULL if there are no annotations.
4110 	 */
4111 	GDBusAnnotationInfo** annotations;
4112 }
4113 
4114 /**
4115  * Virtual table for handling subtrees registered with g_dbus_connection_register_subtree().
4116  *
4117  * Since: 2.26
4118  */
4119 struct GDBusSubtreeVTable
4120 {
4121 	/**
4122 	 * Function for enumerating child nodes.
4123 	 */
4124 	GDBusSubtreeEnumerateFunc enumerate;
4125 	/**
4126 	 * Function for introspecting a child node.
4127 	 */
4128 	GDBusSubtreeIntrospectFunc introspect;
4129 	/**
4130 	 * Function for dispatching a remote call on a child node.
4131 	 */
4132 	GDBusSubtreeDispatchFunc dispatch;
4133 	void*[8] padding;
4134 }
4135 
4136 struct GDataInputStream
4137 {
4138 	GBufferedInputStream parentInstance;
4139 	GDataInputStreamPrivate* priv;
4140 }
4141 
4142 struct GDataInputStreamClass
4143 {
4144 	GBufferedInputStreamClass parentClass;
4145 	/** */
4146 	extern(C) void function() GReserved1;
4147 	/** */
4148 	extern(C) void function() GReserved2;
4149 	/** */
4150 	extern(C) void function() GReserved3;
4151 	/** */
4152 	extern(C) void function() GReserved4;
4153 	/** */
4154 	extern(C) void function() GReserved5;
4155 }
4156 
4157 struct GDataInputStreamPrivate;
4158 
4159 struct GDataOutputStream
4160 {
4161 	GFilterOutputStream parentInstance;
4162 	GDataOutputStreamPrivate* priv;
4163 }
4164 
4165 struct GDataOutputStreamClass
4166 {
4167 	GFilterOutputStreamClass parentClass;
4168 	/** */
4169 	extern(C) void function() GReserved1;
4170 	/** */
4171 	extern(C) void function() GReserved2;
4172 	/** */
4173 	extern(C) void function() GReserved3;
4174 	/** */
4175 	extern(C) void function() GReserved4;
4176 	/** */
4177 	extern(C) void function() GReserved5;
4178 }
4179 
4180 struct GDataOutputStreamPrivate;
4181 
4182 struct GDatagramBased;
4183 
4184 /**
4185  * Provides an interface for socket-like objects which have datagram semantics,
4186  * following the Berkeley sockets API. The interface methods are thin wrappers
4187  * around the corresponding virtual methods, and no pre-processing of inputs is
4188  * implemented — so implementations of this API must handle all functionality
4189  * documented in the interface methods.
4190  *
4191  * Since: 2.48
4192  */
4193 struct GDatagramBasedInterface
4194 {
4195 	/**
4196 	 * The parent interface.
4197 	 */
4198 	GTypeInterface gIface;
4199 	/**
4200 	 *
4201 	 * Params:
4202 	 *     datagramBased = a #GDatagramBased
4203 	 *     messages = an array of #GInputMessage structs
4204 	 *     numMessages = the number of elements in @messages
4205 	 *     flags = an int containing #GSocketMsgFlags flags for the overall operation
4206 	 *     timeout = the maximum time (in microseconds) to wait, 0 to not block, or -1
4207 	 *         to block indefinitely
4208 	 *     cancellable = a %GCancellable
4209 	 * Returns: number of messages received, or -1 on error. Note that the number
4210 	 *     of messages received may be smaller than @num_messages if @timeout is
4211 	 *     zero or positive, if the peer closed the connection, or if @num_messages
4212 	 *     was larger than `UIO_MAXIOV` (1024), in which case the caller may re-try
4213 	 *     to receive the remaining messages.
4214 	 *
4215 	 * Throws: GException on failure.
4216 	 */
4217 	extern(C) int function(GDatagramBased* datagramBased, GInputMessage* messages, uint numMessages, int flags, long timeout, GCancellable* cancellable, GError** err) receiveMessages;
4218 	/**
4219 	 *
4220 	 * Params:
4221 	 *     datagramBased = a #GDatagramBased
4222 	 *     messages = an array of #GOutputMessage structs
4223 	 *     numMessages = the number of elements in @messages
4224 	 *     flags = an int containing #GSocketMsgFlags flags
4225 	 *     timeout = the maximum time (in microseconds) to wait, 0 to not block, or -1
4226 	 *         to block indefinitely
4227 	 *     cancellable = a %GCancellable
4228 	 * Returns: number of messages sent, or -1 on error. Note that the number of
4229 	 *     messages sent may be smaller than @num_messages if @timeout is zero
4230 	 *     or positive, or if @num_messages was larger than `UIO_MAXIOV` (1024), in
4231 	 *     which case the caller may re-try to send the remaining messages.
4232 	 *
4233 	 * Throws: GException on failure.
4234 	 */
4235 	extern(C) int function(GDatagramBased* datagramBased, GOutputMessage* messages, uint numMessages, int flags, long timeout, GCancellable* cancellable, GError** err) sendMessages;
4236 	/**
4237 	 *
4238 	 * Params:
4239 	 *     datagramBased = a #GDatagramBased
4240 	 *     condition = a #GIOCondition mask to monitor
4241 	 *     cancellable = a #GCancellable
4242 	 * Returns: a newly allocated #GSource
4243 	 */
4244 	extern(C) GSource* function(GDatagramBased* datagramBased, GIOCondition condition, GCancellable* cancellable) createSource;
4245 	/**
4246 	 *
4247 	 * Params:
4248 	 *     datagramBased = a #GDatagramBased
4249 	 *     condition = a #GIOCondition mask to check
4250 	 * Returns: the #GIOCondition mask of the current state
4251 	 */
4252 	extern(C) GIOCondition function(GDatagramBased* datagramBased, GIOCondition condition) conditionCheck;
4253 	/**
4254 	 *
4255 	 * Params:
4256 	 *     datagramBased = a #GDatagramBased
4257 	 *     condition = a #GIOCondition mask to wait for
4258 	 *     timeout = the maximum time (in microseconds) to wait, 0 to not block, or -1
4259 	 *         to block indefinitely
4260 	 *     cancellable = a #GCancellable
4261 	 * Returns: %TRUE if the condition was met, %FALSE otherwise
4262 	 *
4263 	 * Throws: GException on failure.
4264 	 */
4265 	extern(C) int function(GDatagramBased* datagramBased, GIOCondition condition, long timeout, GCancellable* cancellable, GError** err) conditionWait;
4266 }
4267 
4268 struct GDesktopAppInfo;
4269 
4270 struct GDesktopAppInfoClass
4271 {
4272 	GObjectClass parentClass;
4273 }
4274 
4275 struct GDesktopAppInfoLookup;
4276 
4277 /**
4278  * Interface that is used by backends to associate default
4279  * handlers with URI schemes.
4280  */
4281 struct GDesktopAppInfoLookupIface
4282 {
4283 	GTypeInterface gIface;
4284 	/**
4285 	 *
4286 	 * Params:
4287 	 *     lookup = a #GDesktopAppInfoLookup
4288 	 *     uriScheme = a string containing a URI scheme.
4289 	 * Returns: #GAppInfo for given @uri_scheme or %NULL on error.
4290 	 */
4291 	extern(C) GAppInfo* function(GDesktopAppInfoLookup* lookup, const(char)* uriScheme) getDefaultForUriScheme;
4292 }
4293 
4294 struct GDrive;
4295 
4296 /**
4297  * Interface for creating #GDrive implementations.
4298  */
4299 struct GDriveIface
4300 {
4301 	/**
4302 	 * The parent interface.
4303 	 */
4304 	GTypeInterface gIface;
4305 	/** */
4306 	extern(C) void function(GDrive* drive) changed;
4307 	/** */
4308 	extern(C) void function(GDrive* drive) disconnected;
4309 	/** */
4310 	extern(C) void function(GDrive* drive) ejectButton;
4311 	/**
4312 	 *
4313 	 * Params:
4314 	 *     drive = a #GDrive.
4315 	 * Returns: a string containing @drive's name. The returned
4316 	 *     string should be freed when no longer needed.
4317 	 */
4318 	extern(C) char* function(GDrive* drive) getName;
4319 	/**
4320 	 *
4321 	 * Params:
4322 	 *     drive = a #GDrive.
4323 	 * Returns: #GIcon for the @drive.
4324 	 *     Free the returned object with g_object_unref().
4325 	 */
4326 	extern(C) GIcon* function(GDrive* drive) getIcon;
4327 	/**
4328 	 *
4329 	 * Params:
4330 	 *     drive = a #GDrive.
4331 	 * Returns: %TRUE if the @drive contains volumes, %FALSE otherwise.
4332 	 */
4333 	extern(C) int function(GDrive* drive) hasVolumes;
4334 	/**
4335 	 *
4336 	 * Params:
4337 	 *     drive = a #GDrive.
4338 	 * Returns: #GList containing any #GVolume objects on the given @drive.
4339 	 */
4340 	extern(C) GList* function(GDrive* drive) getVolumes;
4341 	/**
4342 	 *
4343 	 * Params:
4344 	 *     drive = a #GDrive.
4345 	 * Returns: %TRUE if @drive supports removable media, %FALSE otherwise.
4346 	 */
4347 	extern(C) int function(GDrive* drive) isMediaRemovable;
4348 	/**
4349 	 *
4350 	 * Params:
4351 	 *     drive = a #GDrive.
4352 	 * Returns: %TRUE if @drive has media, %FALSE otherwise.
4353 	 */
4354 	extern(C) int function(GDrive* drive) hasMedia;
4355 	/**
4356 	 *
4357 	 * Params:
4358 	 *     drive = a #GDrive.
4359 	 * Returns: %TRUE if the @drive is capabable of automatically detecting
4360 	 *     media changes, %FALSE otherwise.
4361 	 */
4362 	extern(C) int function(GDrive* drive) isMediaCheckAutomatic;
4363 	/**
4364 	 *
4365 	 * Params:
4366 	 *     drive = a #GDrive.
4367 	 * Returns: %TRUE if the @drive can be ejected, %FALSE otherwise.
4368 	 */
4369 	extern(C) int function(GDrive* drive) canEject;
4370 	/**
4371 	 *
4372 	 * Params:
4373 	 *     drive = a #GDrive.
4374 	 * Returns: %TRUE if the @drive can be polled for media changes,
4375 	 *     %FALSE otherwise.
4376 	 */
4377 	extern(C) int function(GDrive* drive) canPollForMedia;
4378 	/** */
4379 	extern(C) void function(GDrive* drive, GMountUnmountFlags flags, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) eject;
4380 	/**
4381 	 *
4382 	 * Params:
4383 	 *     drive = a #GDrive.
4384 	 *     result = a #GAsyncResult.
4385 	 * Returns: %TRUE if the drive has been ejected successfully,
4386 	 *     %FALSE otherwise.
4387 	 *
4388 	 * Throws: GException on failure.
4389 	 */
4390 	extern(C) int function(GDrive* drive, GAsyncResult* result, GError** err) ejectFinish;
4391 	/** */
4392 	extern(C) void function(GDrive* drive, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) pollForMedia;
4393 	/**
4394 	 *
4395 	 * Params:
4396 	 *     drive = a #GDrive.
4397 	 *     result = a #GAsyncResult.
4398 	 * Returns: %TRUE if the drive has been poll_for_mediaed successfully,
4399 	 *     %FALSE otherwise.
4400 	 *
4401 	 * Throws: GException on failure.
4402 	 */
4403 	extern(C) int function(GDrive* drive, GAsyncResult* result, GError** err) pollForMediaFinish;
4404 	/**
4405 	 *
4406 	 * Params:
4407 	 *     drive = a #GDrive
4408 	 *     kind = the kind of identifier to return
4409 	 * Returns: a newly allocated string containing the
4410 	 *     requested identifier, or %NULL if the #GDrive
4411 	 *     doesn't have this kind of identifier.
4412 	 */
4413 	extern(C) char* function(GDrive* drive, const(char)* kind) getIdentifier;
4414 	/**
4415 	 *
4416 	 * Params:
4417 	 *     drive = a #GDrive
4418 	 * Returns: a %NULL-terminated
4419 	 *     array of strings containing kinds of identifiers. Use g_strfreev()
4420 	 *     to free.
4421 	 */
4422 	extern(C) char** function(GDrive* drive) enumerateIdentifiers;
4423 	/**
4424 	 *
4425 	 * Params:
4426 	 *     drive = a #GDrive.
4427 	 * Returns: A value from the #GDriveStartStopType enumeration.
4428 	 */
4429 	extern(C) GDriveStartStopType function(GDrive* drive) getStartStopType;
4430 	/**
4431 	 *
4432 	 * Params:
4433 	 *     drive = a #GDrive.
4434 	 * Returns: %TRUE if the @drive can be started, %FALSE otherwise.
4435 	 */
4436 	extern(C) int function(GDrive* drive) canStart;
4437 	/**
4438 	 *
4439 	 * Params:
4440 	 *     drive = a #GDrive.
4441 	 * Returns: %TRUE if the @drive can be started degraded, %FALSE otherwise.
4442 	 */
4443 	extern(C) int function(GDrive* drive) canStartDegraded;
4444 	/** */
4445 	extern(C) void function(GDrive* drive, GDriveStartFlags flags, GMountOperation* mountOperation, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) start;
4446 	/**
4447 	 *
4448 	 * Params:
4449 	 *     drive = a #GDrive.
4450 	 *     result = a #GAsyncResult.
4451 	 * Returns: %TRUE if the drive has been started successfully,
4452 	 *     %FALSE otherwise.
4453 	 *
4454 	 * Throws: GException on failure.
4455 	 */
4456 	extern(C) int function(GDrive* drive, GAsyncResult* result, GError** err) startFinish;
4457 	/**
4458 	 *
4459 	 * Params:
4460 	 *     drive = a #GDrive.
4461 	 * Returns: %TRUE if the @drive can be stopped, %FALSE otherwise.
4462 	 */
4463 	extern(C) int function(GDrive* drive) canStop;
4464 	/** */
4465 	extern(C) void function(GDrive* drive, GMountUnmountFlags flags, GMountOperation* mountOperation, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) stop;
4466 	/**
4467 	 *
4468 	 * Params:
4469 	 *     drive = a #GDrive.
4470 	 *     result = a #GAsyncResult.
4471 	 * Returns: %TRUE if the drive has been stopped successfully,
4472 	 *     %FALSE otherwise.
4473 	 *
4474 	 * Throws: GException on failure.
4475 	 */
4476 	extern(C) int function(GDrive* drive, GAsyncResult* result, GError** err) stopFinish;
4477 	/** */
4478 	extern(C) void function(GDrive* drive) stopButton;
4479 	/** */
4480 	extern(C) void function(GDrive* drive, GMountUnmountFlags flags, GMountOperation* mountOperation, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) ejectWithOperation;
4481 	/**
4482 	 *
4483 	 * Params:
4484 	 *     drive = a #GDrive.
4485 	 *     result = a #GAsyncResult.
4486 	 * Returns: %TRUE if the drive was successfully ejected. %FALSE otherwise.
4487 	 *
4488 	 * Throws: GException on failure.
4489 	 */
4490 	extern(C) int function(GDrive* drive, GAsyncResult* result, GError** err) ejectWithOperationFinish;
4491 	/**
4492 	 *
4493 	 * Params:
4494 	 *     drive = A #GDrive.
4495 	 * Returns: Sorting key for @drive or %NULL if no such key is available.
4496 	 */
4497 	extern(C) const(char)* function(GDrive* drive) getSortKey;
4498 	/**
4499 	 *
4500 	 * Params:
4501 	 *     drive = a #GDrive.
4502 	 * Returns: symbolic #GIcon for the @drive.
4503 	 *     Free the returned object with g_object_unref().
4504 	 */
4505 	extern(C) GIcon* function(GDrive* drive) getSymbolicIcon;
4506 	/**
4507 	 *
4508 	 * Params:
4509 	 *     drive = a #GDrive.
4510 	 * Returns: %TRUE if @drive and/or its media is considered removable, %FALSE otherwise.
4511 	 */
4512 	extern(C) int function(GDrive* drive) isRemovable;
4513 }
4514 
4515 struct GDtlsClientConnection;
4516 
4517 /**
4518  * vtable for a #GDtlsClientConnection implementation.
4519  *
4520  * Since: 2.48
4521  */
4522 struct GDtlsClientConnectionInterface
4523 {
4524 	/**
4525 	 * The parent interface.
4526 	 */
4527 	GTypeInterface gIface;
4528 }
4529 
4530 struct GDtlsConnection;
4531 
4532 /**
4533  * Virtual method table for a #GDtlsConnection implementation.
4534  *
4535  * Since: 2.48
4536  */
4537 struct GDtlsConnectionInterface
4538 {
4539 	/**
4540 	 * The parent interface.
4541 	 */
4542 	GTypeInterface gIface;
4543 	/** */
4544 	extern(C) int function(GDtlsConnection* connection, GTlsCertificate* peerCert, GTlsCertificateFlags errors) acceptCertificate;
4545 	/**
4546 	 *
4547 	 * Params:
4548 	 *     conn = a #GDtlsConnection
4549 	 *     cancellable = a #GCancellable, or %NULL
4550 	 * Returns: success or failure
4551 	 *
4552 	 * Throws: GException on failure.
4553 	 */
4554 	extern(C) int function(GDtlsConnection* conn, GCancellable* cancellable, GError** err) handshake;
4555 	/** */
4556 	extern(C) void function(GDtlsConnection* conn, int ioPriority, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) handshakeAsync;
4557 	/**
4558 	 *
4559 	 * Params:
4560 	 *     conn = a #GDtlsConnection
4561 	 *     result = a #GAsyncResult.
4562 	 * Returns: %TRUE on success, %FALSE on failure, in which
4563 	 *     case @error will be set.
4564 	 *
4565 	 * Throws: GException on failure.
4566 	 */
4567 	extern(C) int function(GDtlsConnection* conn, GAsyncResult* result, GError** err) handshakeFinish;
4568 	/**
4569 	 *
4570 	 * Params:
4571 	 *     conn = a #GDtlsConnection
4572 	 *     shutdownRead = %TRUE to stop reception of incoming datagrams
4573 	 *     shutdownWrite = %TRUE to stop sending outgoing datagrams
4574 	 *     cancellable = a #GCancellable, or %NULL
4575 	 * Returns: %TRUE on success, %FALSE otherwise
4576 	 *
4577 	 * Throws: GException on failure.
4578 	 */
4579 	extern(C) int function(GDtlsConnection* conn, int shutdownRead, int shutdownWrite, GCancellable* cancellable, GError** err) shutdown;
4580 	/** */
4581 	extern(C) void function(GDtlsConnection* conn, int shutdownRead, int shutdownWrite, int ioPriority, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) shutdownAsync;
4582 	/**
4583 	 *
4584 	 * Params:
4585 	 *     conn = a #GDtlsConnection
4586 	 *     result = a #GAsyncResult
4587 	 * Returns: %TRUE on success, %FALSE on failure, in which
4588 	 *     case @error will be set
4589 	 *
4590 	 * Throws: GException on failure.
4591 	 */
4592 	extern(C) int function(GDtlsConnection* conn, GAsyncResult* result, GError** err) shutdownFinish;
4593 	/** */
4594 	extern(C) void function(GDtlsConnection* conn, char** protocols) setAdvertisedProtocols;
4595 	/**
4596 	 *
4597 	 * Params:
4598 	 *     conn = a #GDtlsConnection
4599 	 * Returns: the negotiated protocol, or %NULL
4600 	 */
4601 	extern(C) const(char)* function(GDtlsConnection* conn) getNegotiatedProtocol;
4602 }
4603 
4604 struct GDtlsServerConnection;
4605 
4606 /**
4607  * vtable for a #GDtlsServerConnection implementation.
4608  *
4609  * Since: 2.48
4610  */
4611 struct GDtlsServerConnectionInterface
4612 {
4613 	/**
4614 	 * The parent interface.
4615 	 */
4616 	GTypeInterface gIface;
4617 }
4618 
4619 struct GEmblem;
4620 
4621 struct GEmblemClass;
4622 
4623 struct GEmblemedIcon
4624 {
4625 	GObject parentInstance;
4626 	GEmblemedIconPrivate* priv;
4627 }
4628 
4629 struct GEmblemedIconClass
4630 {
4631 	GObjectClass parentClass;
4632 }
4633 
4634 struct GEmblemedIconPrivate;
4635 
4636 struct GFile;
4637 
4638 /**
4639  * Information about a specific attribute.
4640  */
4641 struct GFileAttributeInfo
4642 {
4643 	/**
4644 	 * the name of the attribute.
4645 	 */
4646 	char* name;
4647 	/**
4648 	 * the #GFileAttributeType type of the attribute.
4649 	 */
4650 	GFileAttributeType type;
4651 	/**
4652 	 * a set of #GFileAttributeInfoFlags.
4653 	 */
4654 	GFileAttributeInfoFlags flags;
4655 }
4656 
4657 struct GFileAttributeInfoList
4658 {
4659 	/**
4660 	 * an array of #GFileAttributeInfos.
4661 	 */
4662 	GFileAttributeInfo* infos;
4663 	/**
4664 	 * the number of values in the array.
4665 	 */
4666 	int nInfos;
4667 }
4668 
4669 struct GFileAttributeMatcher;
4670 
4671 struct GFileDescriptorBased;
4672 
4673 /**
4674  * An interface for file descriptor based io objects.
4675  */
4676 struct GFileDescriptorBasedIface
4677 {
4678 	/**
4679 	 * The parent interface.
4680 	 */
4681 	GTypeInterface gIface;
4682 	/**
4683 	 *
4684 	 * Params:
4685 	 *     fdBased = a #GFileDescriptorBased.
4686 	 * Returns: The file descriptor
4687 	 */
4688 	extern(C) int function(GFileDescriptorBased* fdBased) getFd;
4689 }
4690 
4691 struct GFileEnumerator
4692 {
4693 	GObject parentInstance;
4694 	GFileEnumeratorPrivate* priv;
4695 }
4696 
4697 struct GFileEnumeratorClass
4698 {
4699 	GObjectClass parentClass;
4700 	/**
4701 	 *
4702 	 * Params:
4703 	 *     enumerator = a #GFileEnumerator.
4704 	 *     cancellable = optional #GCancellable object, %NULL to ignore.
4705 	 * Returns: A #GFileInfo or %NULL on error
4706 	 *     or end of enumerator.  Free the returned object with
4707 	 *     g_object_unref() when no longer needed.
4708 	 *
4709 	 * Throws: GException on failure.
4710 	 */
4711 	extern(C) GFileInfo* function(GFileEnumerator* enumerator, GCancellable* cancellable, GError** err) nextFile;
4712 	/** */
4713 	extern(C) int function(GFileEnumerator* enumerator, GCancellable* cancellable, GError** err) closeFn;
4714 	/** */
4715 	extern(C) void function(GFileEnumerator* enumerator, int numFiles, int ioPriority, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) nextFilesAsync;
4716 	/**
4717 	 *
4718 	 * Params:
4719 	 *     enumerator = a #GFileEnumerator.
4720 	 *     result = a #GAsyncResult.
4721 	 * Returns: a #GList of #GFileInfos. You must free the list with
4722 	 *     g_list_free() and unref the infos with g_object_unref() when you're
4723 	 *     done with them.
4724 	 *
4725 	 * Throws: GException on failure.
4726 	 */
4727 	extern(C) GList* function(GFileEnumerator* enumerator, GAsyncResult* result, GError** err) nextFilesFinish;
4728 	/** */
4729 	extern(C) void function(GFileEnumerator* enumerator, int ioPriority, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) closeAsync;
4730 	/**
4731 	 *
4732 	 * Params:
4733 	 *     enumerator = a #GFileEnumerator.
4734 	 *     result = a #GAsyncResult.
4735 	 * Returns: %TRUE if the close operation has finished successfully.
4736 	 *
4737 	 * Throws: GException on failure.
4738 	 */
4739 	extern(C) int function(GFileEnumerator* enumerator, GAsyncResult* result, GError** err) closeFinish;
4740 	/** */
4741 	extern(C) void function() GReserved1;
4742 	/** */
4743 	extern(C) void function() GReserved2;
4744 	/** */
4745 	extern(C) void function() GReserved3;
4746 	/** */
4747 	extern(C) void function() GReserved4;
4748 	/** */
4749 	extern(C) void function() GReserved5;
4750 	/** */
4751 	extern(C) void function() GReserved6;
4752 	/** */
4753 	extern(C) void function() GReserved7;
4754 }
4755 
4756 struct GFileEnumeratorPrivate;
4757 
4758 struct GFileIOStream
4759 {
4760 	GIOStream parentInstance;
4761 	GFileIOStreamPrivate* priv;
4762 }
4763 
4764 struct GFileIOStreamClass
4765 {
4766 	GIOStreamClass parentClass;
4767 	/** */
4768 	extern(C) long function(GFileIOStream* stream) tell;
4769 	/** */
4770 	extern(C) int function(GFileIOStream* stream) canSeek;
4771 	/** */
4772 	extern(C) int function(GFileIOStream* stream, long offset, GSeekType type, GCancellable* cancellable, GError** err) seek;
4773 	/** */
4774 	extern(C) int function(GFileIOStream* stream) canTruncate;
4775 	/** */
4776 	extern(C) int function(GFileIOStream* stream, long size, GCancellable* cancellable, GError** err) truncateFn;
4777 	/**
4778 	 *
4779 	 * Params:
4780 	 *     stream = a #GFileIOStream.
4781 	 *     attributes = a file attribute query string.
4782 	 *     cancellable = optional #GCancellable object, %NULL to ignore.
4783 	 * Returns: a #GFileInfo for the @stream, or %NULL on error.
4784 	 *
4785 	 * Throws: GException on failure.
4786 	 */
4787 	extern(C) GFileInfo* function(GFileIOStream* stream, const(char)* attributes, GCancellable* cancellable, GError** err) queryInfo;
4788 	/** */
4789 	extern(C) void function(GFileIOStream* stream, const(char)* attributes, int ioPriority, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) queryInfoAsync;
4790 	/**
4791 	 *
4792 	 * Params:
4793 	 *     stream = a #GFileIOStream.
4794 	 *     result = a #GAsyncResult.
4795 	 * Returns: A #GFileInfo for the finished query.
4796 	 *
4797 	 * Throws: GException on failure.
4798 	 */
4799 	extern(C) GFileInfo* function(GFileIOStream* stream, GAsyncResult* result, GError** err) queryInfoFinish;
4800 	/**
4801 	 *
4802 	 * Params:
4803 	 *     stream = a #GFileIOStream.
4804 	 * Returns: the entity tag for the stream.
4805 	 */
4806 	extern(C) char* function(GFileIOStream* stream) getEtag;
4807 	/** */
4808 	extern(C) void function() GReserved1;
4809 	/** */
4810 	extern(C) void function() GReserved2;
4811 	/** */
4812 	extern(C) void function() GReserved3;
4813 	/** */
4814 	extern(C) void function() GReserved4;
4815 	/** */
4816 	extern(C) void function() GReserved5;
4817 }
4818 
4819 struct GFileIOStreamPrivate;
4820 
4821 struct GFileIcon;
4822 
4823 struct GFileIconClass;
4824 
4825 /**
4826  * An interface for writing VFS file handles.
4827  */
4828 struct GFileIface
4829 {
4830 	/**
4831 	 * The parent interface.
4832 	 */
4833 	GTypeInterface gIface;
4834 	/**
4835 	 *
4836 	 * Params:
4837 	 *     file = input #GFile
4838 	 * Returns: a new #GFile that is a duplicate
4839 	 *     of the given #GFile.
4840 	 */
4841 	extern(C) GFile* function(GFile* file) dup;
4842 	/**
4843 	 *
4844 	 * Params:
4845 	 *     file = #gconstpointer to a #GFile
4846 	 * Returns: 0 if @file is not a valid #GFile, otherwise an
4847 	 *     integer that can be used as hash value for the #GFile.
4848 	 *     This function is intended for easily hashing a #GFile to
4849 	 *     add to a #GHashTable or similar data structure.
4850 	 */
4851 	extern(C) uint function(GFile* file) hash;
4852 	/**
4853 	 *
4854 	 * Params:
4855 	 *     file1 = the first #GFile
4856 	 *     file2 = the second #GFile
4857 	 * Returns: %TRUE if @file1 and @file2 are equal.
4858 	 */
4859 	extern(C) int function(GFile* file1, GFile* file2) equal;
4860 	/**
4861 	 *
4862 	 * Params:
4863 	 *     file = input #GFile
4864 	 * Returns: %TRUE if @file is native
4865 	 */
4866 	extern(C) int function(GFile* file) isNative;
4867 	/**
4868 	 *
4869 	 * Params:
4870 	 *     file = input #GFile
4871 	 *     uriScheme = a string containing a URI scheme
4872 	 * Returns: %TRUE if #GFile's backend supports the
4873 	 *     given URI scheme, %FALSE if URI scheme is %NULL,
4874 	 *     not supported, or #GFile is invalid.
4875 	 */
4876 	extern(C) int function(GFile* file, const(char)* uriScheme) hasUriScheme;
4877 	/**
4878 	 *
4879 	 * Params:
4880 	 *     file = input #GFile
4881 	 * Returns: a string containing the URI scheme for the given
4882 	 *     #GFile. The returned string should be freed with g_free()
4883 	 *     when no longer needed.
4884 	 */
4885 	extern(C) char* function(GFile* file) getUriScheme;
4886 	/** */
4887 	extern(C) char* function(GFile* file) getBasename;
4888 	/** */
4889 	extern(C) char* function(GFile* file) getPath;
4890 	/**
4891 	 *
4892 	 * Params:
4893 	 *     file = input #GFile
4894 	 * Returns: a string containing the #GFile's URI.
4895 	 *     The returned string should be freed with g_free()
4896 	 *     when no longer needed.
4897 	 */
4898 	extern(C) char* function(GFile* file) getUri;
4899 	/**
4900 	 *
4901 	 * Params:
4902 	 *     file = input #GFile
4903 	 * Returns: a string containing the #GFile's parse name.
4904 	 *     The returned string should be freed with g_free()
4905 	 *     when no longer needed.
4906 	 */
4907 	extern(C) char* function(GFile* file) getParseName;
4908 	/**
4909 	 *
4910 	 * Params:
4911 	 *     file = input #GFile
4912 	 * Returns: a #GFile structure to the
4913 	 *     parent of the given #GFile or %NULL if there is no parent. Free
4914 	 *     the returned object with g_object_unref().
4915 	 */
4916 	extern(C) GFile* function(GFile* file) getParent;
4917 	/**
4918 	 *
4919 	 * Params:
4920 	 *     prefix = input #GFile
4921 	 *     file = input #GFile
4922 	 * Returns: %TRUE if the @file's parent, grandparent, etc is @prefix,
4923 	 *     %FALSE otherwise.
4924 	 */
4925 	extern(C) int function(GFile* prefix, GFile* file) prefixMatches;
4926 	/** */
4927 	extern(C) char* function(GFile* parent, GFile* descendant) getRelativePath;
4928 	/**
4929 	 *
4930 	 * Params:
4931 	 *     file = input #GFile
4932 	 *     relativePath = a given relative path string
4933 	 * Returns: #GFile to the resolved path.
4934 	 *     %NULL if @relative_path is %NULL or if @file is invalid.
4935 	 *     Free the returned object with g_object_unref().
4936 	 */
4937 	extern(C) GFile* function(GFile* file, char* relativePath) resolveRelativePath;
4938 	/**
4939 	 *
4940 	 * Params:
4941 	 *     file = input #GFile
4942 	 *     displayName = string to a possible child
4943 	 * Returns: a #GFile to the specified child, or
4944 	 *     %NULL if the display name couldn't be converted.
4945 	 *     Free the returned object with g_object_unref().
4946 	 *
4947 	 * Throws: GException on failure.
4948 	 */
4949 	extern(C) GFile* function(GFile* file, const(char)* displayName, GError** err) getChildForDisplayName;
4950 	/**
4951 	 *
4952 	 * Params:
4953 	 *     file = input #GFile
4954 	 *     attributes = an attribute query string
4955 	 *     flags = a set of #GFileQueryInfoFlags
4956 	 *     cancellable = optional #GCancellable object,
4957 	 *         %NULL to ignore
4958 	 * Returns: A #GFileEnumerator if successful,
4959 	 *     %NULL on error. Free the returned object with g_object_unref().
4960 	 *
4961 	 * Throws: GException on failure.
4962 	 */
4963 	extern(C) GFileEnumerator* function(GFile* file, const(char)* attributes, GFileQueryInfoFlags flags, GCancellable* cancellable, GError** err) enumerateChildren;
4964 	/** */
4965 	extern(C) void function(GFile* file, const(char)* attributes, GFileQueryInfoFlags flags, int ioPriority, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) enumerateChildrenAsync;
4966 	/**
4967 	 *
4968 	 * Params:
4969 	 *     file = input #GFile
4970 	 *     res = a #GAsyncResult
4971 	 * Returns: a #GFileEnumerator or %NULL
4972 	 *     if an error occurred.
4973 	 *     Free the returned object with g_object_unref().
4974 	 *
4975 	 * Throws: GException on failure.
4976 	 */
4977 	extern(C) GFileEnumerator* function(GFile* file, GAsyncResult* res, GError** err) enumerateChildrenFinish;
4978 	/**
4979 	 *
4980 	 * Params:
4981 	 *     file = input #GFile
4982 	 *     attributes = an attribute query string
4983 	 *     flags = a set of #GFileQueryInfoFlags
4984 	 *     cancellable = optional #GCancellable object,
4985 	 *         %NULL to ignore
4986 	 * Returns: a #GFileInfo for the given @file, or %NULL
4987 	 *     on error. Free the returned object with g_object_unref().
4988 	 *
4989 	 * Throws: GException on failure.
4990 	 */
4991 	extern(C) GFileInfo* function(GFile* file, const(char)* attributes, GFileQueryInfoFlags flags, GCancellable* cancellable, GError** err) queryInfo;
4992 	/** */
4993 	extern(C) void function(GFile* file, const(char)* attributes, GFileQueryInfoFlags flags, int ioPriority, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) queryInfoAsync;
4994 	/**
4995 	 *
4996 	 * Params:
4997 	 *     file = input #GFile
4998 	 *     res = a #GAsyncResult
4999 	 * Returns: #GFileInfo for given @file
5000 	 *     or %NULL on error. Free the returned object with
5001 	 *     g_object_unref().
5002 	 *
5003 	 * Throws: GException on failure.
5004 	 */
5005 	extern(C) GFileInfo* function(GFile* file, GAsyncResult* res, GError** err) queryInfoFinish;
5006 	/**
5007 	 *
5008 	 * Params:
5009 	 *     file = input #GFile
5010 	 *     attributes = an attribute query string
5011 	 *     cancellable = optional #GCancellable object,
5012 	 *         %NULL to ignore
5013 	 * Returns: a #GFileInfo or %NULL if there was an error.
5014 	 *     Free the returned object with g_object_unref().
5015 	 *
5016 	 * Throws: GException on failure.
5017 	 */
5018 	extern(C) GFileInfo* function(GFile* file, const(char)* attributes, GCancellable* cancellable, GError** err) queryFilesystemInfo;
5019 	/** */
5020 	extern(C) void function(GFile* file, const(char)* attributes, int ioPriority, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) queryFilesystemInfoAsync;
5021 	/**
5022 	 *
5023 	 * Params:
5024 	 *     file = input #GFile
5025 	 *     res = a #GAsyncResult
5026 	 * Returns: #GFileInfo for given @file
5027 	 *     or %NULL on error.
5028 	 *     Free the returned object with g_object_unref().
5029 	 *
5030 	 * Throws: GException on failure.
5031 	 */
5032 	extern(C) GFileInfo* function(GFile* file, GAsyncResult* res, GError** err) queryFilesystemInfoFinish;
5033 	/**
5034 	 *
5035 	 * Params:
5036 	 *     file = input #GFile
5037 	 *     cancellable = optional #GCancellable object,
5038 	 *         %NULL to ignore
5039 	 * Returns: a #GMount where the @file is located
5040 	 *     or %NULL on error.
5041 	 *     Free the returned object with g_object_unref().
5042 	 *
5043 	 * Throws: GException on failure.
5044 	 */
5045 	extern(C) GMount* function(GFile* file, GCancellable* cancellable, GError** err) findEnclosingMount;
5046 	/** */
5047 	extern(C) void function(GFile* file, int ioPriority, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) findEnclosingMountAsync;
5048 	/**
5049 	 *
5050 	 * Params:
5051 	 *     file = a #GFile
5052 	 *     res = a #GAsyncResult
5053 	 * Returns: #GMount for given @file or %NULL on error.
5054 	 *     Free the returned object with g_object_unref().
5055 	 *
5056 	 * Throws: GException on failure.
5057 	 */
5058 	extern(C) GMount* function(GFile* file, GAsyncResult* res, GError** err) findEnclosingMountFinish;
5059 	/**
5060 	 *
5061 	 * Params:
5062 	 *     file = input #GFile
5063 	 *     displayName = a string
5064 	 *     cancellable = optional #GCancellable object,
5065 	 *         %NULL to ignore
5066 	 * Returns: a #GFile specifying what @file was renamed to,
5067 	 *     or %NULL if there was an error.
5068 	 *     Free the returned object with g_object_unref().
5069 	 *
5070 	 * Throws: GException on failure.
5071 	 */
5072 	extern(C) GFile* function(GFile* file, const(char)* displayName, GCancellable* cancellable, GError** err) setDisplayName;
5073 	/** */
5074 	extern(C) void function(GFile* file, const(char)* displayName, int ioPriority, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) setDisplayNameAsync;
5075 	/**
5076 	 *
5077 	 * Params:
5078 	 *     file = input #GFile
5079 	 *     res = a #GAsyncResult
5080 	 * Returns: a #GFile or %NULL on error.
5081 	 *     Free the returned object with g_object_unref().
5082 	 *
5083 	 * Throws: GException on failure.
5084 	 */
5085 	extern(C) GFile* function(GFile* file, GAsyncResult* res, GError** err) setDisplayNameFinish;
5086 	/**
5087 	 *
5088 	 * Params:
5089 	 *     file = input #GFile
5090 	 *     cancellable = optional #GCancellable object,
5091 	 *         %NULL to ignore
5092 	 * Returns: a #GFileAttributeInfoList describing the settable attributes.
5093 	 *     When you are done with it, release it with
5094 	 *     g_file_attribute_info_list_unref()
5095 	 *
5096 	 * Throws: GException on failure.
5097 	 */
5098 	extern(C) GFileAttributeInfoList* function(GFile* file, GCancellable* cancellable, GError** err) querySettableAttributes;
5099 	/** */
5100 	extern(C) void function() QuerySettableAttributesAsync;
5101 	/** */
5102 	extern(C) void function() QuerySettableAttributesFinish;
5103 	/**
5104 	 *
5105 	 * Params:
5106 	 *     file = input #GFile
5107 	 *     cancellable = optional #GCancellable object,
5108 	 *         %NULL to ignore
5109 	 * Returns: a #GFileAttributeInfoList describing the writable namespaces.
5110 	 *     When you are done with it, release it with
5111 	 *     g_file_attribute_info_list_unref()
5112 	 *
5113 	 * Throws: GException on failure.
5114 	 */
5115 	extern(C) GFileAttributeInfoList* function(GFile* file, GCancellable* cancellable, GError** err) queryWritableNamespaces;
5116 	/** */
5117 	extern(C) void function() QueryWritableNamespacesAsync;
5118 	/** */
5119 	extern(C) void function() QueryWritableNamespacesFinish;
5120 	/**
5121 	 *
5122 	 * Params:
5123 	 *     file = input #GFile
5124 	 *     attribute = a string containing the attribute's name
5125 	 *     type = The type of the attribute
5126 	 *     valueP = a pointer to the value (or the pointer
5127 	 *         itself if the type is a pointer type)
5128 	 *     flags = a set of #GFileQueryInfoFlags
5129 	 *     cancellable = optional #GCancellable object,
5130 	 *         %NULL to ignore
5131 	 * Returns: %TRUE if the attribute was set, %FALSE otherwise.
5132 	 *
5133 	 * Throws: GException on failure.
5134 	 */
5135 	extern(C) int function(GFile* file, const(char)* attribute, GFileAttributeType type, void* valueP, GFileQueryInfoFlags flags, GCancellable* cancellable, GError** err) setAttribute;
5136 	/**
5137 	 *
5138 	 * Params:
5139 	 *     file = input #GFile
5140 	 *     info = a #GFileInfo
5141 	 *     flags = #GFileQueryInfoFlags
5142 	 *     cancellable = optional #GCancellable object,
5143 	 *         %NULL to ignore
5144 	 * Returns: %FALSE if there was any error, %TRUE otherwise.
5145 	 *
5146 	 * Throws: GException on failure.
5147 	 */
5148 	extern(C) int function(GFile* file, GFileInfo* info, GFileQueryInfoFlags flags, GCancellable* cancellable, GError** err) setAttributesFromInfo;
5149 	/** */
5150 	extern(C) void function(GFile* file, GFileInfo* info, GFileQueryInfoFlags flags, int ioPriority, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) setAttributesAsync;
5151 	/**
5152 	 *
5153 	 * Params:
5154 	 *     file = input #GFile
5155 	 *     result = a #GAsyncResult
5156 	 *     info = a #GFileInfo
5157 	 * Returns: %TRUE if the attributes were set correctly, %FALSE otherwise.
5158 	 *
5159 	 * Throws: GException on failure.
5160 	 */
5161 	extern(C) int function(GFile* file, GAsyncResult* result, GFileInfo** info, GError** err) setAttributesFinish;
5162 	/**
5163 	 *
5164 	 * Params:
5165 	 *     file = #GFile to read
5166 	 *     cancellable = a #GCancellable
5167 	 * Returns: #GFileInputStream or %NULL on error.
5168 	 *     Free the returned object with g_object_unref().
5169 	 *
5170 	 * Throws: GException on failure.
5171 	 */
5172 	extern(C) GFileInputStream* function(GFile* file, GCancellable* cancellable, GError** err) readFn;
5173 	/** */
5174 	extern(C) void function(GFile* file, int ioPriority, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) readAsync;
5175 	/**
5176 	 *
5177 	 * Params:
5178 	 *     file = input #GFile
5179 	 *     res = a #GAsyncResult
5180 	 * Returns: a #GFileInputStream or %NULL on error.
5181 	 *     Free the returned object with g_object_unref().
5182 	 *
5183 	 * Throws: GException on failure.
5184 	 */
5185 	extern(C) GFileInputStream* function(GFile* file, GAsyncResult* res, GError** err) readFinish;
5186 	/**
5187 	 *
5188 	 * Params:
5189 	 *     file = input #GFile
5190 	 *     flags = a set of #GFileCreateFlags
5191 	 *     cancellable = optional #GCancellable object,
5192 	 *         %NULL to ignore
5193 	 * Returns: a #GFileOutputStream, or %NULL on error.
5194 	 *     Free the returned object with g_object_unref().
5195 	 *
5196 	 * Throws: GException on failure.
5197 	 */
5198 	extern(C) GFileOutputStream* function(GFile* file, GFileCreateFlags flags, GCancellable* cancellable, GError** err) appendTo;
5199 	/** */
5200 	extern(C) void function(GFile* file, GFileCreateFlags flags, int ioPriority, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) appendToAsync;
5201 	/**
5202 	 *
5203 	 * Params:
5204 	 *     file = input #GFile
5205 	 *     res = #GAsyncResult
5206 	 * Returns: a valid #GFileOutputStream
5207 	 *     or %NULL on error.
5208 	 *     Free the returned object with g_object_unref().
5209 	 *
5210 	 * Throws: GException on failure.
5211 	 */
5212 	extern(C) GFileOutputStream* function(GFile* file, GAsyncResult* res, GError** err) appendToFinish;
5213 	/**
5214 	 *
5215 	 * Params:
5216 	 *     file = input #GFile
5217 	 *     flags = a set of #GFileCreateFlags
5218 	 *     cancellable = optional #GCancellable object,
5219 	 *         %NULL to ignore
5220 	 * Returns: a #GFileOutputStream for the newly created
5221 	 *     file, or %NULL on error.
5222 	 *     Free the returned object with g_object_unref().
5223 	 *
5224 	 * Throws: GException on failure.
5225 	 */
5226 	extern(C) GFileOutputStream* function(GFile* file, GFileCreateFlags flags, GCancellable* cancellable, GError** err) create;
5227 	/** */
5228 	extern(C) void function(GFile* file, GFileCreateFlags flags, int ioPriority, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) createAsync;
5229 	/**
5230 	 *
5231 	 * Params:
5232 	 *     file = input #GFile
5233 	 *     res = a #GAsyncResult
5234 	 * Returns: a #GFileOutputStream or %NULL on error.
5235 	 *     Free the returned object with g_object_unref().
5236 	 *
5237 	 * Throws: GException on failure.
5238 	 */
5239 	extern(C) GFileOutputStream* function(GFile* file, GAsyncResult* res, GError** err) createFinish;
5240 	/**
5241 	 *
5242 	 * Params:
5243 	 *     file = input #GFile
5244 	 *     etag = an optional [entity tag][gfile-etag]
5245 	 *         for the current #GFile, or #NULL to ignore
5246 	 *     makeBackup = %TRUE if a backup should be created
5247 	 *     flags = a set of #GFileCreateFlags
5248 	 *     cancellable = optional #GCancellable object,
5249 	 *         %NULL to ignore
5250 	 * Returns: a #GFileOutputStream or %NULL on error.
5251 	 *     Free the returned object with g_object_unref().
5252 	 *
5253 	 * Throws: GException on failure.
5254 	 */
5255 	extern(C) GFileOutputStream* function(GFile* file, const(char)* etag, int makeBackup, GFileCreateFlags flags, GCancellable* cancellable, GError** err) replace;
5256 	/** */
5257 	extern(C) void function(GFile* file, const(char)* etag, int makeBackup, GFileCreateFlags flags, int ioPriority, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) replaceAsync;
5258 	/**
5259 	 *
5260 	 * Params:
5261 	 *     file = input #GFile
5262 	 *     res = a #GAsyncResult
5263 	 * Returns: a #GFileOutputStream, or %NULL on error.
5264 	 *     Free the returned object with g_object_unref().
5265 	 *
5266 	 * Throws: GException on failure.
5267 	 */
5268 	extern(C) GFileOutputStream* function(GFile* file, GAsyncResult* res, GError** err) replaceFinish;
5269 	/**
5270 	 *
5271 	 * Params:
5272 	 *     file = input #GFile
5273 	 *     cancellable = optional #GCancellable object,
5274 	 *         %NULL to ignore
5275 	 * Returns: %TRUE if the file was deleted. %FALSE otherwise.
5276 	 *
5277 	 * Throws: GException on failure.
5278 	 */
5279 	extern(C) int function(GFile* file, GCancellable* cancellable, GError** err) deleteFile;
5280 	/** */
5281 	extern(C) void function(GFile* file, int ioPriority, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) deleteFileAsync;
5282 	/**
5283 	 *
5284 	 * Params:
5285 	 *     file = input #GFile
5286 	 *     result = a #GAsyncResult
5287 	 * Returns: %TRUE if the file was deleted. %FALSE otherwise.
5288 	 *
5289 	 * Throws: GException on failure.
5290 	 */
5291 	extern(C) int function(GFile* file, GAsyncResult* result, GError** err) deleteFileFinish;
5292 	/**
5293 	 *
5294 	 * Params:
5295 	 *     file = #GFile to send to trash
5296 	 *     cancellable = optional #GCancellable object,
5297 	 *         %NULL to ignore
5298 	 * Returns: %TRUE on successful trash, %FALSE otherwise.
5299 	 *
5300 	 * Throws: GException on failure.
5301 	 */
5302 	extern(C) int function(GFile* file, GCancellable* cancellable, GError** err) trash;
5303 	/** */
5304 	extern(C) void function(GFile* file, int ioPriority, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) trashAsync;
5305 	/**
5306 	 *
5307 	 * Params:
5308 	 *     file = input #GFile
5309 	 *     result = a #GAsyncResult
5310 	 * Returns: %TRUE on successful trash, %FALSE otherwise.
5311 	 *
5312 	 * Throws: GException on failure.
5313 	 */
5314 	extern(C) int function(GFile* file, GAsyncResult* result, GError** err) trashFinish;
5315 	/**
5316 	 *
5317 	 * Params:
5318 	 *     file = input #GFile
5319 	 *     cancellable = optional #GCancellable object,
5320 	 *         %NULL to ignore
5321 	 * Returns: %TRUE on successful creation, %FALSE otherwise.
5322 	 *
5323 	 * Throws: GException on failure.
5324 	 */
5325 	extern(C) int function(GFile* file, GCancellable* cancellable, GError** err) makeDirectory;
5326 	/** */
5327 	extern(C) void function(GFile* file, int ioPriority, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) makeDirectoryAsync;
5328 	/**
5329 	 *
5330 	 * Params:
5331 	 *     file = input #GFile
5332 	 *     result = a #GAsyncResult
5333 	 * Returns: %TRUE on successful directory creation, %FALSE otherwise.
5334 	 *
5335 	 * Throws: GException on failure.
5336 	 */
5337 	extern(C) int function(GFile* file, GAsyncResult* result, GError** err) makeDirectoryFinish;
5338 	/**
5339 	 *
5340 	 * Params:
5341 	 *     file = a #GFile with the name of the symlink to create
5342 	 *     symlinkValue = a string with the path for the target
5343 	 *         of the new symlink
5344 	 *     cancellable = optional #GCancellable object,
5345 	 *         %NULL to ignore
5346 	 * Returns: %TRUE on the creation of a new symlink, %FALSE otherwise.
5347 	 *
5348 	 * Throws: GException on failure.
5349 	 */
5350 	extern(C) int function(GFile* file, char* symlinkValue, GCancellable* cancellable, GError** err) makeSymbolicLink;
5351 	/** */
5352 	extern(C) void function() MakeSymbolicLinkAsync;
5353 	/** */
5354 	extern(C) void function() MakeSymbolicLinkFinish;
5355 	/**
5356 	 *
5357 	 * Params:
5358 	 *     source = input #GFile
5359 	 *     destination = destination #GFile
5360 	 *     flags = set of #GFileCopyFlags
5361 	 *     cancellable = optional #GCancellable object,
5362 	 *         %NULL to ignore
5363 	 *     progressCallback = function to callback with
5364 	 *         progress information, or %NULL if progress information is not needed
5365 	 *     progressCallbackData = user data to pass to @progress_callback
5366 	 * Returns: %TRUE on success, %FALSE otherwise.
5367 	 *
5368 	 * Throws: GException on failure.
5369 	 */
5370 	extern(C) int function(GFile* source, GFile* destination, GFileCopyFlags flags, GCancellable* cancellable, GFileProgressCallback progressCallback, void* progressCallbackData, GError** err) copy;
5371 	/** */
5372 	extern(C) void function(GFile* source, GFile* destination, GFileCopyFlags flags, int ioPriority, GCancellable* cancellable, GFileProgressCallback progressCallback, void* progressCallbackData, GAsyncReadyCallback callback, void* userData) copyAsync;
5373 	/**
5374 	 *
5375 	 * Params:
5376 	 *     file = input #GFile
5377 	 *     res = a #GAsyncResult
5378 	 * Returns: a %TRUE on success, %FALSE on error.
5379 	 *
5380 	 * Throws: GException on failure.
5381 	 */
5382 	extern(C) int function(GFile* file, GAsyncResult* res, GError** err) copyFinish;
5383 	/**
5384 	 *
5385 	 * Params:
5386 	 *     source = #GFile pointing to the source location
5387 	 *     destination = #GFile pointing to the destination location
5388 	 *     flags = set of #GFileCopyFlags
5389 	 *     cancellable = optional #GCancellable object,
5390 	 *         %NULL to ignore
5391 	 *     progressCallback = #GFileProgressCallback
5392 	 *         function for updates
5393 	 *     progressCallbackData = gpointer to user data for
5394 	 *         the callback function
5395 	 * Returns: %TRUE on successful move, %FALSE otherwise.
5396 	 *
5397 	 * Throws: GException on failure.
5398 	 */
5399 	extern(C) int function(GFile* source, GFile* destination, GFileCopyFlags flags, GCancellable* cancellable, GFileProgressCallback progressCallback, void* progressCallbackData, GError** err) move;
5400 	/** */
5401 	extern(C) void function() MoveAsync;
5402 	/** */
5403 	extern(C) void function() MoveFinish;
5404 	/** */
5405 	extern(C) void function(GFile* file, GMountMountFlags flags, GMountOperation* mountOperation, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) mountMountable;
5406 	/**
5407 	 *
5408 	 * Params:
5409 	 *     file = input #GFile
5410 	 *     result = a #GAsyncResult
5411 	 * Returns: a #GFile or %NULL on error.
5412 	 *     Free the returned object with g_object_unref().
5413 	 *
5414 	 * Throws: GException on failure.
5415 	 */
5416 	extern(C) GFile* function(GFile* file, GAsyncResult* result, GError** err) mountMountableFinish;
5417 	/** */
5418 	extern(C) void function(GFile* file, GMountUnmountFlags flags, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) unmountMountable;
5419 	/**
5420 	 *
5421 	 * Params:
5422 	 *     file = input #GFile
5423 	 *     result = a #GAsyncResult
5424 	 * Returns: %TRUE if the operation finished successfully.
5425 	 *     %FALSE otherwise.
5426 	 *
5427 	 * Throws: GException on failure.
5428 	 */
5429 	extern(C) int function(GFile* file, GAsyncResult* result, GError** err) unmountMountableFinish;
5430 	/** */
5431 	extern(C) void function(GFile* file, GMountUnmountFlags flags, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) ejectMountable;
5432 	/**
5433 	 *
5434 	 * Params:
5435 	 *     file = input #GFile
5436 	 *     result = a #GAsyncResult
5437 	 * Returns: %TRUE if the @file was ejected successfully.
5438 	 *     %FALSE otherwise.
5439 	 *
5440 	 * Throws: GException on failure.
5441 	 */
5442 	extern(C) int function(GFile* file, GAsyncResult* result, GError** err) ejectMountableFinish;
5443 	/** */
5444 	extern(C) void function(GFile* location, GMountMountFlags flags, GMountOperation* mountOperation, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) mountEnclosingVolume;
5445 	/**
5446 	 *
5447 	 * Params:
5448 	 *     location = input #GFile
5449 	 *     result = a #GAsyncResult
5450 	 * Returns: %TRUE if successful. If an error has occurred,
5451 	 *     this function will return %FALSE and set @error
5452 	 *     appropriately if present.
5453 	 *
5454 	 * Throws: GException on failure.
5455 	 */
5456 	extern(C) int function(GFile* location, GAsyncResult* result, GError** err) mountEnclosingVolumeFinish;
5457 	/**
5458 	 *
5459 	 * Params:
5460 	 *     file = input #GFile
5461 	 *     flags = a set of #GFileMonitorFlags
5462 	 *     cancellable = optional #GCancellable object,
5463 	 *         %NULL to ignore
5464 	 * Returns: a #GFileMonitor for the given @file,
5465 	 *     or %NULL on error.
5466 	 *     Free the returned object with g_object_unref().
5467 	 *
5468 	 * Throws: GException on failure.
5469 	 */
5470 	extern(C) GFileMonitor* function(GFile* file, GFileMonitorFlags flags, GCancellable* cancellable, GError** err) monitorDir;
5471 	/**
5472 	 *
5473 	 * Params:
5474 	 *     file = input #GFile
5475 	 *     flags = a set of #GFileMonitorFlags
5476 	 *     cancellable = optional #GCancellable object,
5477 	 *         %NULL to ignore
5478 	 * Returns: a #GFileMonitor for the given @file,
5479 	 *     or %NULL on error.
5480 	 *     Free the returned object with g_object_unref().
5481 	 *
5482 	 * Throws: GException on failure.
5483 	 */
5484 	extern(C) GFileMonitor* function(GFile* file, GFileMonitorFlags flags, GCancellable* cancellable, GError** err) monitorFile;
5485 	/**
5486 	 *
5487 	 * Params:
5488 	 *     file = #GFile to open
5489 	 *     cancellable = a #GCancellable
5490 	 * Returns: #GFileIOStream or %NULL on error.
5491 	 *     Free the returned object with g_object_unref().
5492 	 *
5493 	 * Throws: GException on failure.
5494 	 */
5495 	extern(C) GFileIOStream* function(GFile* file, GCancellable* cancellable, GError** err) openReadwrite;
5496 	/** */
5497 	extern(C) void function(GFile* file, int ioPriority, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) openReadwriteAsync;
5498 	/**
5499 	 *
5500 	 * Params:
5501 	 *     file = input #GFile
5502 	 *     res = a #GAsyncResult
5503 	 * Returns: a #GFileIOStream or %NULL on error.
5504 	 *     Free the returned object with g_object_unref().
5505 	 *
5506 	 * Throws: GException on failure.
5507 	 */
5508 	extern(C) GFileIOStream* function(GFile* file, GAsyncResult* res, GError** err) openReadwriteFinish;
5509 	/**
5510 	 *
5511 	 * Params:
5512 	 *     file = a #GFile
5513 	 *     flags = a set of #GFileCreateFlags
5514 	 *     cancellable = optional #GCancellable object,
5515 	 *         %NULL to ignore
5516 	 * Returns: a #GFileIOStream for the newly created
5517 	 *     file, or %NULL on error.
5518 	 *     Free the returned object with g_object_unref().
5519 	 *
5520 	 * Throws: GException on failure.
5521 	 */
5522 	extern(C) GFileIOStream* function(GFile* file, GFileCreateFlags flags, GCancellable* cancellable, GError** err) createReadwrite;
5523 	/** */
5524 	extern(C) void function(GFile* file, GFileCreateFlags flags, int ioPriority, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) createReadwriteAsync;
5525 	/**
5526 	 *
5527 	 * Params:
5528 	 *     file = input #GFile
5529 	 *     res = a #GAsyncResult
5530 	 * Returns: a #GFileIOStream or %NULL on error.
5531 	 *     Free the returned object with g_object_unref().
5532 	 *
5533 	 * Throws: GException on failure.
5534 	 */
5535 	extern(C) GFileIOStream* function(GFile* file, GAsyncResult* res, GError** err) createReadwriteFinish;
5536 	/**
5537 	 *
5538 	 * Params:
5539 	 *     file = a #GFile
5540 	 *     etag = an optional [entity tag][gfile-etag]
5541 	 *         for the current #GFile, or #NULL to ignore
5542 	 *     makeBackup = %TRUE if a backup should be created
5543 	 *     flags = a set of #GFileCreateFlags
5544 	 *     cancellable = optional #GCancellable object,
5545 	 *         %NULL to ignore
5546 	 * Returns: a #GFileIOStream or %NULL on error.
5547 	 *     Free the returned object with g_object_unref().
5548 	 *
5549 	 * Throws: GException on failure.
5550 	 */
5551 	extern(C) GFileIOStream* function(GFile* file, const(char)* etag, int makeBackup, GFileCreateFlags flags, GCancellable* cancellable, GError** err) replaceReadwrite;
5552 	/** */
5553 	extern(C) void function(GFile* file, const(char)* etag, int makeBackup, GFileCreateFlags flags, int ioPriority, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) replaceReadwriteAsync;
5554 	/**
5555 	 *
5556 	 * Params:
5557 	 *     file = input #GFile
5558 	 *     res = a #GAsyncResult
5559 	 * Returns: a #GFileIOStream, or %NULL on error.
5560 	 *     Free the returned object with g_object_unref().
5561 	 *
5562 	 * Throws: GException on failure.
5563 	 */
5564 	extern(C) GFileIOStream* function(GFile* file, GAsyncResult* res, GError** err) replaceReadwriteFinish;
5565 	/** */
5566 	extern(C) void function(GFile* file, GDriveStartFlags flags, GMountOperation* startOperation, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) startMountable;
5567 	/**
5568 	 *
5569 	 * Params:
5570 	 *     file = input #GFile
5571 	 *     result = a #GAsyncResult
5572 	 * Returns: %TRUE if the operation finished successfully. %FALSE
5573 	 *     otherwise.
5574 	 *
5575 	 * Throws: GException on failure.
5576 	 */
5577 	extern(C) int function(GFile* file, GAsyncResult* result, GError** err) startMountableFinish;
5578 	/** */
5579 	extern(C) void function(GFile* file, GMountUnmountFlags flags, GMountOperation* mountOperation, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) stopMountable;
5580 	/**
5581 	 *
5582 	 * Params:
5583 	 *     file = input #GFile
5584 	 *     result = a #GAsyncResult
5585 	 * Returns: %TRUE if the operation finished successfully.
5586 	 *     %FALSE otherwise.
5587 	 *
5588 	 * Throws: GException on failure.
5589 	 */
5590 	extern(C) int function(GFile* file, GAsyncResult* result, GError** err) stopMountableFinish;
5591 	/**
5592 	 * a boolean that indicates whether the #GFile implementation supports thread-default contexts. Since 2.22.
5593 	 */
5594 	bool supportsThreadContexts;
5595 	/** */
5596 	extern(C) void function(GFile* file, GMountUnmountFlags flags, GMountOperation* mountOperation, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) unmountMountableWithOperation;
5597 	/**
5598 	 *
5599 	 * Params:
5600 	 *     file = input #GFile
5601 	 *     result = a #GAsyncResult
5602 	 * Returns: %TRUE if the operation finished successfully.
5603 	 *     %FALSE otherwise.
5604 	 *
5605 	 * Throws: GException on failure.
5606 	 */
5607 	extern(C) int function(GFile* file, GAsyncResult* result, GError** err) unmountMountableWithOperationFinish;
5608 	/** */
5609 	extern(C) void function(GFile* file, GMountUnmountFlags flags, GMountOperation* mountOperation, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) ejectMountableWithOperation;
5610 	/**
5611 	 *
5612 	 * Params:
5613 	 *     file = input #GFile
5614 	 *     result = a #GAsyncResult
5615 	 * Returns: %TRUE if the @file was ejected successfully.
5616 	 *     %FALSE otherwise.
5617 	 *
5618 	 * Throws: GException on failure.
5619 	 */
5620 	extern(C) int function(GFile* file, GAsyncResult* result, GError** err) ejectMountableWithOperationFinish;
5621 	/** */
5622 	extern(C) void function(GFile* file, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) pollMountable;
5623 	/**
5624 	 *
5625 	 * Params:
5626 	 *     file = input #GFile
5627 	 *     result = a #GAsyncResult
5628 	 * Returns: %TRUE if the operation finished successfully. %FALSE
5629 	 *     otherwise.
5630 	 *
5631 	 * Throws: GException on failure.
5632 	 */
5633 	extern(C) int function(GFile* file, GAsyncResult* result, GError** err) pollMountableFinish;
5634 	/**
5635 	 *
5636 	 * Params:
5637 	 *     file = a #GFile
5638 	 *     flags = #GFileMeasureFlags
5639 	 *     cancellable = optional #GCancellable
5640 	 *     progressCallback = a #GFileMeasureProgressCallback
5641 	 *     progressData = user_data for @progress_callback
5642 	 *     diskUsage = the number of bytes of disk space used
5643 	 *     numDirs = the number of directories encountered
5644 	 *     numFiles = the number of non-directories encountered
5645 	 * Returns: %TRUE if successful, with the out parameters set.
5646 	 *     %FALSE otherwise, with @error set.
5647 	 *
5648 	 * Throws: GException on failure.
5649 	 */
5650 	extern(C) int function(GFile* file, GFileMeasureFlags flags, GCancellable* cancellable, GFileMeasureProgressCallback progressCallback, void* progressData, ulong* diskUsage, ulong* numDirs, ulong* numFiles, GError** err) measureDiskUsage;
5651 	/** */
5652 	extern(C) void function(GFile* file, GFileMeasureFlags flags, int ioPriority, GCancellable* cancellable, GFileMeasureProgressCallback progressCallback, void* progressData, GAsyncReadyCallback callback, void* userData) measureDiskUsageAsync;
5653 	/**
5654 	 *
5655 	 * Params:
5656 	 *     file = a #GFile
5657 	 *     result = the #GAsyncResult passed to your #GAsyncReadyCallback
5658 	 *     diskUsage = the number of bytes of disk space used
5659 	 *     numDirs = the number of directories encountered
5660 	 *     numFiles = the number of non-directories encountered
5661 	 * Returns: %TRUE if successful, with the out parameters set.
5662 	 *     %FALSE otherwise, with @error set.
5663 	 *
5664 	 * Throws: GException on failure.
5665 	 */
5666 	extern(C) int function(GFile* file, GAsyncResult* result, ulong* diskUsage, ulong* numDirs, ulong* numFiles, GError** err) measureDiskUsageFinish;
5667 }
5668 
5669 struct GFileInfo;
5670 
5671 struct GFileInfoClass;
5672 
5673 struct GFileInputStream
5674 {
5675 	GInputStream parentInstance;
5676 	GFileInputStreamPrivate* priv;
5677 }
5678 
5679 struct GFileInputStreamClass
5680 {
5681 	GInputStreamClass parentClass;
5682 	/** */
5683 	extern(C) long function(GFileInputStream* stream) tell;
5684 	/** */
5685 	extern(C) int function(GFileInputStream* stream) canSeek;
5686 	/** */
5687 	extern(C) int function(GFileInputStream* stream, long offset, GSeekType type, GCancellable* cancellable, GError** err) seek;
5688 	/**
5689 	 *
5690 	 * Params:
5691 	 *     stream = a #GFileInputStream.
5692 	 *     attributes = a file attribute query string.
5693 	 *     cancellable = optional #GCancellable object, %NULL to ignore.
5694 	 * Returns: a #GFileInfo, or %NULL on error.
5695 	 *
5696 	 * Throws: GException on failure.
5697 	 */
5698 	extern(C) GFileInfo* function(GFileInputStream* stream, const(char)* attributes, GCancellable* cancellable, GError** err) queryInfo;
5699 	/** */
5700 	extern(C) void function(GFileInputStream* stream, const(char)* attributes, int ioPriority, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) queryInfoAsync;
5701 	/**
5702 	 *
5703 	 * Params:
5704 	 *     stream = a #GFileInputStream.
5705 	 *     result = a #GAsyncResult.
5706 	 * Returns: #GFileInfo.
5707 	 *
5708 	 * Throws: GException on failure.
5709 	 */
5710 	extern(C) GFileInfo* function(GFileInputStream* stream, GAsyncResult* result, GError** err) queryInfoFinish;
5711 	/** */
5712 	extern(C) void function() GReserved1;
5713 	/** */
5714 	extern(C) void function() GReserved2;
5715 	/** */
5716 	extern(C) void function() GReserved3;
5717 	/** */
5718 	extern(C) void function() GReserved4;
5719 	/** */
5720 	extern(C) void function() GReserved5;
5721 }
5722 
5723 struct GFileInputStreamPrivate;
5724 
5725 struct GFileMonitor
5726 {
5727 	GObject parentInstance;
5728 	GFileMonitorPrivate* priv;
5729 }
5730 
5731 struct GFileMonitorClass
5732 {
5733 	GObjectClass parentClass;
5734 	/** */
5735 	extern(C) void function(GFileMonitor* monitor, GFile* file, GFile* otherFile, GFileMonitorEvent eventType) changed;
5736 	/**
5737 	 *
5738 	 * Params:
5739 	 *     monitor = a #GFileMonitor.
5740 	 * Returns: always %TRUE
5741 	 */
5742 	extern(C) int function(GFileMonitor* monitor) cancel;
5743 	/** */
5744 	extern(C) void function() GReserved1;
5745 	/** */
5746 	extern(C) void function() GReserved2;
5747 	/** */
5748 	extern(C) void function() GReserved3;
5749 	/** */
5750 	extern(C) void function() GReserved4;
5751 	/** */
5752 	extern(C) void function() GReserved5;
5753 }
5754 
5755 struct GFileMonitorPrivate;
5756 
5757 struct GFileOutputStream
5758 {
5759 	GOutputStream parentInstance;
5760 	GFileOutputStreamPrivate* priv;
5761 }
5762 
5763 struct GFileOutputStreamClass
5764 {
5765 	GOutputStreamClass parentClass;
5766 	/** */
5767 	extern(C) long function(GFileOutputStream* stream) tell;
5768 	/** */
5769 	extern(C) int function(GFileOutputStream* stream) canSeek;
5770 	/** */
5771 	extern(C) int function(GFileOutputStream* stream, long offset, GSeekType type, GCancellable* cancellable, GError** err) seek;
5772 	/** */
5773 	extern(C) int function(GFileOutputStream* stream) canTruncate;
5774 	/** */
5775 	extern(C) int function(GFileOutputStream* stream, long size, GCancellable* cancellable, GError** err) truncateFn;
5776 	/**
5777 	 *
5778 	 * Params:
5779 	 *     stream = a #GFileOutputStream.
5780 	 *     attributes = a file attribute query string.
5781 	 *     cancellable = optional #GCancellable object, %NULL to ignore.
5782 	 * Returns: a #GFileInfo for the @stream, or %NULL on error.
5783 	 *
5784 	 * Throws: GException on failure.
5785 	 */
5786 	extern(C) GFileInfo* function(GFileOutputStream* stream, const(char)* attributes, GCancellable* cancellable, GError** err) queryInfo;
5787 	/** */
5788 	extern(C) void function(GFileOutputStream* stream, const(char)* attributes, int ioPriority, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) queryInfoAsync;
5789 	/**
5790 	 *
5791 	 * Params:
5792 	 *     stream = a #GFileOutputStream.
5793 	 *     result = a #GAsyncResult.
5794 	 * Returns: A #GFileInfo for the finished query.
5795 	 *
5796 	 * Throws: GException on failure.
5797 	 */
5798 	extern(C) GFileInfo* function(GFileOutputStream* stream, GAsyncResult* result, GError** err) queryInfoFinish;
5799 	/**
5800 	 *
5801 	 * Params:
5802 	 *     stream = a #GFileOutputStream.
5803 	 * Returns: the entity tag for the stream.
5804 	 */
5805 	extern(C) char* function(GFileOutputStream* stream) getEtag;
5806 	/** */
5807 	extern(C) void function() GReserved1;
5808 	/** */
5809 	extern(C) void function() GReserved2;
5810 	/** */
5811 	extern(C) void function() GReserved3;
5812 	/** */
5813 	extern(C) void function() GReserved4;
5814 	/** */
5815 	extern(C) void function() GReserved5;
5816 }
5817 
5818 struct GFileOutputStreamPrivate;
5819 
5820 struct GFilenameCompleter;
5821 
5822 struct GFilenameCompleterClass
5823 {
5824 	GObjectClass parentClass;
5825 	/** */
5826 	extern(C) void function(GFilenameCompleter* filenameCompleter) gotCompletionData;
5827 	/** */
5828 	extern(C) void function() GReserved1;
5829 	/** */
5830 	extern(C) void function() GReserved2;
5831 	/** */
5832 	extern(C) void function() GReserved3;
5833 }
5834 
5835 struct GFilterInputStream
5836 {
5837 	GInputStream parentInstance;
5838 	GInputStream* baseStream;
5839 }
5840 
5841 struct GFilterInputStreamClass
5842 {
5843 	GInputStreamClass parentClass;
5844 	/** */
5845 	extern(C) void function() GReserved1;
5846 	/** */
5847 	extern(C) void function() GReserved2;
5848 	/** */
5849 	extern(C) void function() GReserved3;
5850 }
5851 
5852 struct GFilterOutputStream
5853 {
5854 	GOutputStream parentInstance;
5855 	GOutputStream* baseStream;
5856 }
5857 
5858 struct GFilterOutputStreamClass
5859 {
5860 	GOutputStreamClass parentClass;
5861 	/** */
5862 	extern(C) void function() GReserved1;
5863 	/** */
5864 	extern(C) void function() GReserved2;
5865 	/** */
5866 	extern(C) void function() GReserved3;
5867 }
5868 
5869 struct GIOExtension;
5870 
5871 struct GIOExtensionPoint;
5872 
5873 struct GIOModule;
5874 
5875 struct GIOModuleClass;
5876 
5877 struct GIOModuleScope;
5878 
5879 struct GIOSchedulerJob;
5880 
5881 struct GIOStream
5882 {
5883 	GObject parentInstance;
5884 	GIOStreamPrivate* priv;
5885 }
5886 
5887 struct GIOStreamAdapter;
5888 
5889 struct GIOStreamClass
5890 {
5891 	GObjectClass parentClass;
5892 	/**
5893 	 *
5894 	 * Params:
5895 	 *     stream = a #GIOStream
5896 	 * Returns: a #GInputStream, owned by the #GIOStream.
5897 	 *     Do not free.
5898 	 */
5899 	extern(C) GInputStream* function(GIOStream* stream) getInputStream;
5900 	/**
5901 	 *
5902 	 * Params:
5903 	 *     stream = a #GIOStream
5904 	 * Returns: a #GOutputStream, owned by the #GIOStream.
5905 	 *     Do not free.
5906 	 */
5907 	extern(C) GOutputStream* function(GIOStream* stream) getOutputStream;
5908 	/** */
5909 	extern(C) int function(GIOStream* stream, GCancellable* cancellable, GError** err) closeFn;
5910 	/** */
5911 	extern(C) void function(GIOStream* stream, int ioPriority, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) closeAsync;
5912 	/**
5913 	 *
5914 	 * Params:
5915 	 *     stream = a #GIOStream
5916 	 *     result = a #GAsyncResult
5917 	 * Returns: %TRUE if stream was successfully closed, %FALSE otherwise.
5918 	 *
5919 	 * Throws: GException on failure.
5920 	 */
5921 	extern(C) int function(GIOStream* stream, GAsyncResult* result, GError** err) closeFinish;
5922 	/** */
5923 	extern(C) void function() GReserved1;
5924 	/** */
5925 	extern(C) void function() GReserved2;
5926 	/** */
5927 	extern(C) void function() GReserved3;
5928 	/** */
5929 	extern(C) void function() GReserved4;
5930 	/** */
5931 	extern(C) void function() GReserved5;
5932 	/** */
5933 	extern(C) void function() GReserved6;
5934 	/** */
5935 	extern(C) void function() GReserved7;
5936 	/** */
5937 	extern(C) void function() GReserved8;
5938 	/** */
5939 	extern(C) void function() GReserved9;
5940 	/** */
5941 	extern(C) void function() GReserved10;
5942 }
5943 
5944 struct GIOStreamPrivate;
5945 
5946 struct GIcon;
5947 
5948 /**
5949  * GIconIface is used to implement GIcon types for various
5950  * different systems. See #GThemedIcon and #GLoadableIcon for
5951  * examples of how to implement this interface.
5952  */
5953 struct GIconIface
5954 {
5955 	/**
5956 	 * The parent interface.
5957 	 */
5958 	GTypeInterface gIface;
5959 	/**
5960 	 *
5961 	 * Params:
5962 	 *     icon = #gconstpointer to an icon object.
5963 	 * Returns: a #guint containing a hash for the @icon, suitable for
5964 	 *     use in a #GHashTable or similar data structure.
5965 	 */
5966 	extern(C) uint function(GIcon* icon) hash;
5967 	/**
5968 	 *
5969 	 * Params:
5970 	 *     icon1 = pointer to the first #GIcon.
5971 	 *     icon2 = pointer to the second #GIcon.
5972 	 * Returns: %TRUE if @icon1 is equal to @icon2. %FALSE otherwise.
5973 	 */
5974 	extern(C) int function(GIcon* icon1, GIcon* icon2) equal;
5975 	/**
5976 	 *
5977 	 * Params:
5978 	 *     icon = a #GIcon.
5979 	 * Returns: An allocated NUL-terminated UTF8 string or
5980 	 *     %NULL if @icon can't be serialized. Use g_free() to free.
5981 	 */
5982 	extern(C) int function(GIcon* icon, GPtrArray* tokens, int* outVersion) toTokens;
5983 	/** */
5984 	extern(C) GIcon* function(char** tokens, int numTokens, int version_, GError** err) fromTokens;
5985 	/**
5986 	 *
5987 	 * Params:
5988 	 *     icon = a #GIcon
5989 	 * Returns: a #GVariant, or %NULL when serialization fails.
5990 	 */
5991 	extern(C) GVariant* function(GIcon* icon) serialize;
5992 }
5993 
5994 struct GInetAddress
5995 {
5996 	GObject parentInstance;
5997 	GInetAddressPrivate* priv;
5998 }
5999 
6000 struct GInetAddressClass
6001 {
6002 	GObjectClass parentClass;
6003 	/**
6004 	 *
6005 	 * Params:
6006 	 *     address = a #GInetAddress
6007 	 * Returns: a representation of @address as a string, which should be
6008 	 *     freed after use.
6009 	 */
6010 	extern(C) char* function(GInetAddress* address) toString;
6011 	/**
6012 	 *
6013 	 * Params:
6014 	 *     address = a #GInetAddress
6015 	 * Returns: a pointer to an internal array of the bytes in @address,
6016 	 *     which should not be modified, stored, or freed. The size of this
6017 	 *     array can be gotten with g_inet_address_get_native_size().
6018 	 */
6019 	extern(C) ubyte* function(GInetAddress* address) toBytes;
6020 }
6021 
6022 struct GInetAddressMask
6023 {
6024 	GObject parentInstance;
6025 	GInetAddressMaskPrivate* priv;
6026 }
6027 
6028 struct GInetAddressMaskClass
6029 {
6030 	GObjectClass parentClass;
6031 }
6032 
6033 struct GInetAddressMaskPrivate;
6034 
6035 struct GInetAddressPrivate;
6036 
6037 struct GInetSocketAddress
6038 {
6039 	GSocketAddress parentInstance;
6040 	GInetSocketAddressPrivate* priv;
6041 }
6042 
6043 struct GInetSocketAddressClass
6044 {
6045 	GSocketAddressClass parentClass;
6046 }
6047 
6048 struct GInetSocketAddressPrivate;
6049 
6050 struct GInitable;
6051 
6052 /**
6053  * Provides an interface for initializing object such that initialization
6054  * may fail.
6055  *
6056  * Since: 2.22
6057  */
6058 struct GInitableIface
6059 {
6060 	/**
6061 	 * The parent interface.
6062 	 */
6063 	GTypeInterface gIface;
6064 	/**
6065 	 *
6066 	 * Params:
6067 	 *     initable = a #GInitable.
6068 	 *     cancellable = optional #GCancellable object, %NULL to ignore.
6069 	 * Returns: %TRUE if successful. If an error has occurred, this function will
6070 	 *     return %FALSE and set @error appropriately if present.
6071 	 *
6072 	 * Throws: GException on failure.
6073 	 */
6074 	extern(C) int function(GInitable* initable, GCancellable* cancellable, GError** err) init;
6075 }
6076 
6077 /**
6078  * Structure used for scatter/gather data input when receiving multiple
6079  * messages or packets in one go. You generally pass in an array of empty
6080  * #GInputVectors and the operation will use all the buffers as if they
6081  * were one buffer, and will set @bytes_received to the total number of bytes
6082  * received across all #GInputVectors.
6083  *
6084  * This structure closely mirrors `struct mmsghdr` and `struct msghdr` from
6085  * the POSIX sockets API (see `man 2 recvmmsg`).
6086  *
6087  * If @address is non-%NULL then it is set to the source address the message
6088  * was received from, and the caller must free it afterwards.
6089  *
6090  * If @control_messages is non-%NULL then it is set to an array of control
6091  * messages received with the message (if any), and the caller must free it
6092  * afterwards. @num_control_messages is set to the number of elements in
6093  * this array, which may be zero.
6094  *
6095  * Flags relevant to this message will be returned in @flags. For example,
6096  * `MSG_EOR` or `MSG_TRUNC`.
6097  *
6098  * Since: 2.48
6099  */
6100 struct GInputMessage
6101 {
6102 	/**
6103 	 * return location
6104 	 * for a #GSocketAddress, or %NULL
6105 	 */
6106 	GSocketAddress** address;
6107 	/**
6108 	 * pointer to an
6109 	 * array of input vectors
6110 	 */
6111 	GInputVector* vectors;
6112 	/**
6113 	 * the number of input vectors pointed to by @vectors
6114 	 */
6115 	uint numVectors;
6116 	/**
6117 	 * will be set to the number of bytes that have been
6118 	 * received
6119 	 */
6120 	size_t bytesReceived;
6121 	/**
6122 	 * collection of #GSocketMsgFlags for the received message,
6123 	 * outputted by the call
6124 	 */
6125 	int flags;
6126 	/**
6127 	 * return location for a
6128 	 * caller-allocated array of #GSocketControlMessages, or %NULL
6129 	 */
6130 	GSocketControlMessage*** controlMessages;
6131 	/**
6132 	 * return location for the number of
6133 	 * elements in @control_messages
6134 	 */
6135 	uint* numControlMessages;
6136 }
6137 
6138 struct GInputStream
6139 {
6140 	GObject parentInstance;
6141 	GInputStreamPrivate* priv;
6142 }
6143 
6144 struct GInputStreamClass
6145 {
6146 	GObjectClass parentClass;
6147 	/** */
6148 	extern(C) ptrdiff_t function(GInputStream* stream, void* buffer, size_t count, GCancellable* cancellable, GError** err) readFn;
6149 	/**
6150 	 *
6151 	 * Params:
6152 	 *     stream = a #GInputStream.
6153 	 *     count = the number of bytes that will be skipped from the stream
6154 	 *     cancellable = optional #GCancellable object, %NULL to ignore.
6155 	 * Returns: Number of bytes skipped, or -1 on error
6156 	 *
6157 	 * Throws: GException on failure.
6158 	 */
6159 	extern(C) ptrdiff_t function(GInputStream* stream, size_t count, GCancellable* cancellable, GError** err) skip;
6160 	/** */
6161 	extern(C) int function(GInputStream* stream, GCancellable* cancellable, GError** err) closeFn;
6162 	/** */
6163 	extern(C) void function(GInputStream* stream, void* buffer, size_t count, int ioPriority, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) readAsync;
6164 	/**
6165 	 *
6166 	 * Params:
6167 	 *     stream = a #GInputStream.
6168 	 *     result = a #GAsyncResult.
6169 	 * Returns: number of bytes read in, or -1 on error, or 0 on end of file.
6170 	 *
6171 	 * Throws: GException on failure.
6172 	 */
6173 	extern(C) ptrdiff_t function(GInputStream* stream, GAsyncResult* result, GError** err) readFinish;
6174 	/** */
6175 	extern(C) void function(GInputStream* stream, size_t count, int ioPriority, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) skipAsync;
6176 	/**
6177 	 *
6178 	 * Params:
6179 	 *     stream = a #GInputStream.
6180 	 *     result = a #GAsyncResult.
6181 	 * Returns: the size of the bytes skipped, or `-1` on error.
6182 	 *
6183 	 * Throws: GException on failure.
6184 	 */
6185 	extern(C) ptrdiff_t function(GInputStream* stream, GAsyncResult* result, GError** err) skipFinish;
6186 	/** */
6187 	extern(C) void function(GInputStream* stream, int ioPriority, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) closeAsync;
6188 	/**
6189 	 *
6190 	 * Params:
6191 	 *     stream = a #GInputStream.
6192 	 *     result = a #GAsyncResult.
6193 	 * Returns: %TRUE if the stream was closed successfully.
6194 	 *
6195 	 * Throws: GException on failure.
6196 	 */
6197 	extern(C) int function(GInputStream* stream, GAsyncResult* result, GError** err) closeFinish;
6198 	/** */
6199 	extern(C) void function() GReserved1;
6200 	/** */
6201 	extern(C) void function() GReserved2;
6202 	/** */
6203 	extern(C) void function() GReserved3;
6204 	/** */
6205 	extern(C) void function() GReserved4;
6206 	/** */
6207 	extern(C) void function() GReserved5;
6208 }
6209 
6210 struct GInputStreamPrivate;
6211 
6212 /**
6213  * Structure used for scatter/gather data input.
6214  * You generally pass in an array of #GInputVectors
6215  * and the operation will store the read data starting in the
6216  * first buffer, switching to the next as needed.
6217  *
6218  * Since: 2.22
6219  */
6220 struct GInputVector
6221 {
6222 	/**
6223 	 * Pointer to a buffer where data will be written.
6224 	 */
6225 	void* buffer;
6226 	/**
6227 	 * the available size in @buffer.
6228 	 */
6229 	size_t size;
6230 }
6231 
6232 struct GListModel;
6233 
6234 /**
6235  * The virtual function table for #GListModel.
6236  *
6237  * Since: 2.44
6238  */
6239 struct GListModelInterface
6240 {
6241 	/**
6242 	 * parent #GTypeInterface
6243 	 */
6244 	GTypeInterface gIface;
6245 	/**
6246 	 *
6247 	 * Params:
6248 	 *     list = a #GListModel
6249 	 * Returns: the #GType of the items contained in @list.
6250 	 */
6251 	extern(C) GType function(GListModel* list) getItemType;
6252 	/**
6253 	 *
6254 	 * Params:
6255 	 *     list = a #GListModel
6256 	 * Returns: the number of items in @list.
6257 	 */
6258 	extern(C) uint function(GListModel* list) getNItems;
6259 	/**
6260 	 *
6261 	 * Params:
6262 	 *     list = a #GListModel
6263 	 *     position = the position of the item to fetch
6264 	 * Returns: the object at @position.
6265 	 */
6266 	extern(C) void* function(GListModel* list, uint position) getItem;
6267 }
6268 
6269 struct GListStore;
6270 
6271 struct GListStoreClass
6272 {
6273 	GObjectClass parentClass;
6274 }
6275 
6276 struct GLoadableIcon;
6277 
6278 /**
6279  * Interface for icons that can be loaded as a stream.
6280  */
6281 struct GLoadableIconIface
6282 {
6283 	/**
6284 	 * The parent interface.
6285 	 */
6286 	GTypeInterface gIface;
6287 	/**
6288 	 *
6289 	 * Params:
6290 	 *     icon = a #GLoadableIcon.
6291 	 *     size = an integer.
6292 	 *     type = a location to store the type of the loaded
6293 	 *         icon, %NULL to ignore.
6294 	 *     cancellable = optional #GCancellable object, %NULL to
6295 	 *         ignore.
6296 	 * Returns: a #GInputStream to read the icon from.
6297 	 *
6298 	 * Throws: GException on failure.
6299 	 */
6300 	extern(C) GInputStream* function(GLoadableIcon* icon, int size, char** type, GCancellable* cancellable, GError** err) load;
6301 	/** */
6302 	extern(C) void function(GLoadableIcon* icon, int size, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) loadAsync;
6303 	/**
6304 	 *
6305 	 * Params:
6306 	 *     icon = a #GLoadableIcon.
6307 	 *     res = a #GAsyncResult.
6308 	 *     type = a location to store the type of the loaded
6309 	 *         icon, %NULL to ignore.
6310 	 * Returns: a #GInputStream to read the icon from.
6311 	 *
6312 	 * Throws: GException on failure.
6313 	 */
6314 	extern(C) GInputStream* function(GLoadableIcon* icon, GAsyncResult* res, char** type, GError** err) loadFinish;
6315 }
6316 
6317 struct GMemoryInputStream
6318 {
6319 	GInputStream parentInstance;
6320 	GMemoryInputStreamPrivate* priv;
6321 }
6322 
6323 struct GMemoryInputStreamClass
6324 {
6325 	GInputStreamClass parentClass;
6326 	/** */
6327 	extern(C) void function() GReserved1;
6328 	/** */
6329 	extern(C) void function() GReserved2;
6330 	/** */
6331 	extern(C) void function() GReserved3;
6332 	/** */
6333 	extern(C) void function() GReserved4;
6334 	/** */
6335 	extern(C) void function() GReserved5;
6336 }
6337 
6338 struct GMemoryInputStreamPrivate;
6339 
6340 struct GMemoryMonitor;
6341 
6342 /**
6343  * The virtual function table for #GMemoryMonitor.
6344  *
6345  * Since: 2.64
6346  */
6347 struct GMemoryMonitorInterface
6348 {
6349 	/**
6350 	 * The parent interface.
6351 	 */
6352 	GTypeInterface gIface;
6353 	/** */
6354 	extern(C) void function(GMemoryMonitor* monitor, GMemoryMonitorWarningLevel level) lowMemoryWarning;
6355 }
6356 
6357 struct GMemoryOutputStream
6358 {
6359 	GOutputStream parentInstance;
6360 	GMemoryOutputStreamPrivate* priv;
6361 }
6362 
6363 struct GMemoryOutputStreamClass
6364 {
6365 	GOutputStreamClass parentClass;
6366 	/** */
6367 	extern(C) void function() GReserved1;
6368 	/** */
6369 	extern(C) void function() GReserved2;
6370 	/** */
6371 	extern(C) void function() GReserved3;
6372 	/** */
6373 	extern(C) void function() GReserved4;
6374 	/** */
6375 	extern(C) void function() GReserved5;
6376 }
6377 
6378 struct GMemoryOutputStreamPrivate;
6379 
6380 struct GMenu;
6381 
6382 struct GMenuAttributeIter
6383 {
6384 	GObject parentInstance;
6385 	GMenuAttributeIterPrivate* priv;
6386 }
6387 
6388 struct GMenuAttributeIterClass
6389 {
6390 	GObjectClass parentClass;
6391 	/**
6392 	 *
6393 	 * Params:
6394 	 *     iter = a #GMenuAttributeIter
6395 	 *     outName = the type of the attribute
6396 	 *     value = the attribute value
6397 	 * Returns: %TRUE on success, or %FALSE if there is no additional
6398 	 *     attribute
6399 	 */
6400 	extern(C) int function(GMenuAttributeIter* iter, char** outName, GVariant** value) getNext;
6401 }
6402 
6403 struct GMenuAttributeIterPrivate;
6404 
6405 struct GMenuItem;
6406 
6407 struct GMenuLinkIter
6408 {
6409 	GObject parentInstance;
6410 	GMenuLinkIterPrivate* priv;
6411 }
6412 
6413 struct GMenuLinkIterClass
6414 {
6415 	GObjectClass parentClass;
6416 	/**
6417 	 *
6418 	 * Params:
6419 	 *     iter = a #GMenuLinkIter
6420 	 *     outLink = the name of the link
6421 	 *     value = the linked #GMenuModel
6422 	 * Returns: %TRUE on success, or %FALSE if there is no additional link
6423 	 */
6424 	extern(C) int function(GMenuLinkIter* iter, char** outLink, GMenuModel** value) getNext;
6425 }
6426 
6427 struct GMenuLinkIterPrivate;
6428 
6429 struct GMenuModel
6430 {
6431 	GObject parentInstance;
6432 	GMenuModelPrivate* priv;
6433 }
6434 
6435 struct GMenuModelClass
6436 {
6437 	GObjectClass parentClass;
6438 	/**
6439 	 *
6440 	 * Params:
6441 	 *     model = a #GMenuModel
6442 	 * Returns: %TRUE if the model is mutable (ie: "items-changed" may be
6443 	 *     emitted).
6444 	 */
6445 	extern(C) int function(GMenuModel* model) isMutable;
6446 	/**
6447 	 *
6448 	 * Params:
6449 	 *     model = a #GMenuModel
6450 	 * Returns: the number of items
6451 	 */
6452 	extern(C) int function(GMenuModel* model) getNItems;
6453 	/** */
6454 	extern(C) void function(GMenuModel* model, int itemIndex, GHashTable** attributes) getItemAttributes;
6455 	/**
6456 	 *
6457 	 * Params:
6458 	 *     model = a #GMenuModel
6459 	 *     itemIndex = the index of the item
6460 	 * Returns: a new #GMenuAttributeIter
6461 	 */
6462 	extern(C) GMenuAttributeIter* function(GMenuModel* model, int itemIndex) iterateItemAttributes;
6463 	/**
6464 	 *
6465 	 * Params:
6466 	 *     model = a #GMenuModel
6467 	 *     itemIndex = the index of the item
6468 	 *     attribute = the attribute to query
6469 	 *     expectedType = the expected type of the attribute, or
6470 	 *         %NULL
6471 	 * Returns: the value of the attribute
6472 	 */
6473 	extern(C) GVariant* function(GMenuModel* model, int itemIndex, const(char)* attribute, GVariantType* expectedType) getItemAttributeValue;
6474 	/** */
6475 	extern(C) void function(GMenuModel* model, int itemIndex, GHashTable** links) getItemLinks;
6476 	/**
6477 	 *
6478 	 * Params:
6479 	 *     model = a #GMenuModel
6480 	 *     itemIndex = the index of the item
6481 	 * Returns: a new #GMenuLinkIter
6482 	 */
6483 	extern(C) GMenuLinkIter* function(GMenuModel* model, int itemIndex) iterateItemLinks;
6484 	/**
6485 	 *
6486 	 * Params:
6487 	 *     model = a #GMenuModel
6488 	 *     itemIndex = the index of the item
6489 	 *     link = the link to query
6490 	 * Returns: the linked #GMenuModel, or %NULL
6491 	 */
6492 	extern(C) GMenuModel* function(GMenuModel* model, int itemIndex, const(char)* link) getItemLink;
6493 }
6494 
6495 struct GMenuModelPrivate;
6496 
6497 struct GMount;
6498 
6499 /**
6500  * Interface for implementing operations for mounts.
6501  */
6502 struct GMountIface
6503 {
6504 	/**
6505 	 * The parent interface.
6506 	 */
6507 	GTypeInterface gIface;
6508 	/** */
6509 	extern(C) void function(GMount* mount) changed;
6510 	/** */
6511 	extern(C) void function(GMount* mount) unmounted;
6512 	/**
6513 	 *
6514 	 * Params:
6515 	 *     mount = a #GMount.
6516 	 * Returns: a #GFile.
6517 	 *     The returned object should be unreffed with
6518 	 *     g_object_unref() when no longer needed.
6519 	 */
6520 	extern(C) GFile* function(GMount* mount) getRoot;
6521 	/**
6522 	 *
6523 	 * Params:
6524 	 *     mount = a #GMount.
6525 	 * Returns: the name for the given @mount.
6526 	 *     The returned string should be freed with g_free()
6527 	 *     when no longer needed.
6528 	 */
6529 	extern(C) char* function(GMount* mount) getName;
6530 	/**
6531 	 *
6532 	 * Params:
6533 	 *     mount = a #GMount.
6534 	 * Returns: a #GIcon.
6535 	 *     The returned object should be unreffed with
6536 	 *     g_object_unref() when no longer needed.
6537 	 */
6538 	extern(C) GIcon* function(GMount* mount) getIcon;
6539 	/**
6540 	 *
6541 	 * Params:
6542 	 *     mount = a #GMount.
6543 	 * Returns: the UUID for @mount or %NULL if no UUID
6544 	 *     can be computed.
6545 	 *     The returned string should be freed with g_free()
6546 	 *     when no longer needed.
6547 	 */
6548 	extern(C) char* function(GMount* mount) getUuid;
6549 	/**
6550 	 *
6551 	 * Params:
6552 	 *     mount = a #GMount.
6553 	 * Returns: a #GVolume or %NULL if @mount is not
6554 	 *     associated with a volume.
6555 	 *     The returned object should be unreffed with
6556 	 *     g_object_unref() when no longer needed.
6557 	 */
6558 	extern(C) GVolume* function(GMount* mount) getVolume;
6559 	/**
6560 	 *
6561 	 * Params:
6562 	 *     mount = a #GMount.
6563 	 * Returns: a #GDrive or %NULL if @mount is not
6564 	 *     associated with a volume or a drive.
6565 	 *     The returned object should be unreffed with
6566 	 *     g_object_unref() when no longer needed.
6567 	 */
6568 	extern(C) GDrive* function(GMount* mount) getDrive;
6569 	/**
6570 	 *
6571 	 * Params:
6572 	 *     mount = a #GMount.
6573 	 * Returns: %TRUE if the @mount can be unmounted.
6574 	 */
6575 	extern(C) int function(GMount* mount) canUnmount;
6576 	/**
6577 	 *
6578 	 * Params:
6579 	 *     mount = a #GMount.
6580 	 * Returns: %TRUE if the @mount can be ejected.
6581 	 */
6582 	extern(C) int function(GMount* mount) canEject;
6583 	/** */
6584 	extern(C) void function(GMount* mount, GMountUnmountFlags flags, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) unmount;
6585 	/**
6586 	 *
6587 	 * Params:
6588 	 *     mount = a #GMount.
6589 	 *     result = a #GAsyncResult.
6590 	 * Returns: %TRUE if the mount was successfully unmounted. %FALSE otherwise.
6591 	 *
6592 	 * Throws: GException on failure.
6593 	 */
6594 	extern(C) int function(GMount* mount, GAsyncResult* result, GError** err) unmountFinish;
6595 	/** */
6596 	extern(C) void function(GMount* mount, GMountUnmountFlags flags, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) eject;
6597 	/**
6598 	 *
6599 	 * Params:
6600 	 *     mount = a #GMount.
6601 	 *     result = a #GAsyncResult.
6602 	 * Returns: %TRUE if the mount was successfully ejected. %FALSE otherwise.
6603 	 *
6604 	 * Throws: GException on failure.
6605 	 */
6606 	extern(C) int function(GMount* mount, GAsyncResult* result, GError** err) ejectFinish;
6607 	/** */
6608 	extern(C) void function(GMount* mount, GMountMountFlags flags, GMountOperation* mountOperation, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) remount;
6609 	/**
6610 	 *
6611 	 * Params:
6612 	 *     mount = a #GMount.
6613 	 *     result = a #GAsyncResult.
6614 	 * Returns: %TRUE if the mount was successfully remounted. %FALSE otherwise.
6615 	 *
6616 	 * Throws: GException on failure.
6617 	 */
6618 	extern(C) int function(GMount* mount, GAsyncResult* result, GError** err) remountFinish;
6619 	/** */
6620 	extern(C) void function(GMount* mount, int forceRescan, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) guessContentType;
6621 	/**
6622 	 *
6623 	 * Params:
6624 	 *     mount = a #GMount
6625 	 *     result = a #GAsyncResult
6626 	 * Returns: a %NULL-terminated array of content types or %NULL on error.
6627 	 *     Caller should free this array with g_strfreev() when done with it.
6628 	 *
6629 	 * Throws: GException on failure.
6630 	 */
6631 	extern(C) char** function(GMount* mount, GAsyncResult* result, GError** err) guessContentTypeFinish;
6632 	/**
6633 	 *
6634 	 * Params:
6635 	 *     mount = a #GMount
6636 	 *     forceRescan = Whether to force a rescan of the content.
6637 	 *         Otherwise a cached result will be used if available
6638 	 *     cancellable = optional #GCancellable object, %NULL to ignore
6639 	 * Returns: a %NULL-terminated array of content types or %NULL on error.
6640 	 *     Caller should free this array with g_strfreev() when done with it.
6641 	 *
6642 	 * Throws: GException on failure.
6643 	 */
6644 	extern(C) char** function(GMount* mount, int forceRescan, GCancellable* cancellable, GError** err) guessContentTypeSync;
6645 	/** */
6646 	extern(C) void function(GMount* mount) preUnmount;
6647 	/** */
6648 	extern(C) void function(GMount* mount, GMountUnmountFlags flags, GMountOperation* mountOperation, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) unmountWithOperation;
6649 	/**
6650 	 *
6651 	 * Params:
6652 	 *     mount = a #GMount.
6653 	 *     result = a #GAsyncResult.
6654 	 * Returns: %TRUE if the mount was successfully unmounted. %FALSE otherwise.
6655 	 *
6656 	 * Throws: GException on failure.
6657 	 */
6658 	extern(C) int function(GMount* mount, GAsyncResult* result, GError** err) unmountWithOperationFinish;
6659 	/** */
6660 	extern(C) void function(GMount* mount, GMountUnmountFlags flags, GMountOperation* mountOperation, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) ejectWithOperation;
6661 	/**
6662 	 *
6663 	 * Params:
6664 	 *     mount = a #GMount.
6665 	 *     result = a #GAsyncResult.
6666 	 * Returns: %TRUE if the mount was successfully ejected. %FALSE otherwise.
6667 	 *
6668 	 * Throws: GException on failure.
6669 	 */
6670 	extern(C) int function(GMount* mount, GAsyncResult* result, GError** err) ejectWithOperationFinish;
6671 	/**
6672 	 *
6673 	 * Params:
6674 	 *     mount = a #GMount.
6675 	 * Returns: a #GFile.
6676 	 *     The returned object should be unreffed with
6677 	 *     g_object_unref() when no longer needed.
6678 	 */
6679 	extern(C) GFile* function(GMount* mount) getDefaultLocation;
6680 	/**
6681 	 *
6682 	 * Params:
6683 	 *     mount = A #GMount.
6684 	 * Returns: Sorting key for @mount or %NULL if no such key is available.
6685 	 */
6686 	extern(C) const(char)* function(GMount* mount) getSortKey;
6687 	/**
6688 	 *
6689 	 * Params:
6690 	 *     mount = a #GMount.
6691 	 * Returns: a #GIcon.
6692 	 *     The returned object should be unreffed with
6693 	 *     g_object_unref() when no longer needed.
6694 	 */
6695 	extern(C) GIcon* function(GMount* mount) getSymbolicIcon;
6696 }
6697 
6698 struct GMountOperation
6699 {
6700 	GObject parentInstance;
6701 	GMountOperationPrivate* priv;
6702 }
6703 
6704 struct GMountOperationClass
6705 {
6706 	GObjectClass parentClass;
6707 	/** */
6708 	extern(C) void function(GMountOperation* op, const(char)* message, const(char)* defaultUser, const(char)* defaultDomain, GAskPasswordFlags flags) askPassword;
6709 	/** */
6710 	extern(C) void function(GMountOperation* op, const(char)* message, char** choices) askQuestion;
6711 	/** */
6712 	extern(C) void function(GMountOperation* op, GMountOperationResult result) reply;
6713 	/** */
6714 	extern(C) void function(GMountOperation* op) aborted;
6715 	/** */
6716 	extern(C) void function(GMountOperation* op, const(char)* message, GArray* processes, char** choices) showProcesses;
6717 	/** */
6718 	extern(C) void function(GMountOperation* op, const(char)* message, long timeLeft, long bytesLeft) showUnmountProgress;
6719 	/** */
6720 	extern(C) void function() GReserved1;
6721 	/** */
6722 	extern(C) void function() GReserved2;
6723 	/** */
6724 	extern(C) void function() GReserved3;
6725 	/** */
6726 	extern(C) void function() GReserved4;
6727 	/** */
6728 	extern(C) void function() GReserved5;
6729 	/** */
6730 	extern(C) void function() GReserved6;
6731 	/** */
6732 	extern(C) void function() GReserved7;
6733 	/** */
6734 	extern(C) void function() GReserved8;
6735 	/** */
6736 	extern(C) void function() GReserved9;
6737 }
6738 
6739 struct GMountOperationPrivate;
6740 
6741 struct GNativeSocketAddress
6742 {
6743 	GSocketAddress parentInstance;
6744 	GNativeSocketAddressPrivate* priv;
6745 }
6746 
6747 struct GNativeSocketAddressClass
6748 {
6749 	GSocketAddressClass parentClass;
6750 }
6751 
6752 struct GNativeSocketAddressPrivate;
6753 
6754 struct GNativeVolumeMonitor
6755 {
6756 	GVolumeMonitor parentInstance;
6757 }
6758 
6759 struct GNativeVolumeMonitorClass
6760 {
6761 	GVolumeMonitorClass parentClass;
6762 	/** */
6763 	extern(C) GMount* function(const(char)* mountPath, GCancellable* cancellable) getMountForMountPath;
6764 }
6765 
6766 struct GNetworkAddress
6767 {
6768 	GObject parentInstance;
6769 	GNetworkAddressPrivate* priv;
6770 }
6771 
6772 struct GNetworkAddressClass
6773 {
6774 	GObjectClass parentClass;
6775 }
6776 
6777 struct GNetworkAddressPrivate;
6778 
6779 struct GNetworkMonitor;
6780 
6781 /**
6782  * The virtual function table for #GNetworkMonitor.
6783  *
6784  * Since: 2.32
6785  */
6786 struct GNetworkMonitorInterface
6787 {
6788 	/**
6789 	 * The parent interface.
6790 	 */
6791 	GTypeInterface gIface;
6792 	/** */
6793 	extern(C) void function(GNetworkMonitor* monitor, int networkAvailable) networkChanged;
6794 	/**
6795 	 *
6796 	 * Params:
6797 	 *     monitor = a #GNetworkMonitor
6798 	 *     connectable = a #GSocketConnectable
6799 	 *     cancellable = a #GCancellable, or %NULL
6800 	 * Returns: %TRUE if @connectable is reachable, %FALSE if not.
6801 	 *
6802 	 * Throws: GException on failure.
6803 	 */
6804 	extern(C) int function(GNetworkMonitor* monitor, GSocketConnectable* connectable, GCancellable* cancellable, GError** err) canReach;
6805 	/** */
6806 	extern(C) void function(GNetworkMonitor* monitor, GSocketConnectable* connectable, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) canReachAsync;
6807 	/**
6808 	 *
6809 	 * Params:
6810 	 *     monitor = a #GNetworkMonitor
6811 	 *     result = a #GAsyncResult
6812 	 * Returns: %TRUE if network is reachable, %FALSE if not.
6813 	 *
6814 	 * Throws: GException on failure.
6815 	 */
6816 	extern(C) int function(GNetworkMonitor* monitor, GAsyncResult* result, GError** err) canReachFinish;
6817 }
6818 
6819 struct GNetworkService
6820 {
6821 	GObject parentInstance;
6822 	GNetworkServicePrivate* priv;
6823 }
6824 
6825 struct GNetworkServiceClass
6826 {
6827 	GObjectClass parentClass;
6828 }
6829 
6830 struct GNetworkServicePrivate;
6831 
6832 struct GNotification;
6833 
6834 /**
6835  * Structure used for scatter/gather data output when sending multiple
6836  * messages or packets in one go. You generally pass in an array of
6837  * #GOutputVectors and the operation will use all the buffers as if they
6838  * were one buffer.
6839  *
6840  * If @address is %NULL then the message is sent to the default receiver
6841  * (as previously set by g_socket_connect()).
6842  *
6843  * Since: 2.44
6844  */
6845 struct GOutputMessage
6846 {
6847 	/**
6848 	 * a #GSocketAddress, or %NULL
6849 	 */
6850 	GSocketAddress* address;
6851 	/**
6852 	 * pointer to an array of output vectors
6853 	 */
6854 	GOutputVector* vectors;
6855 	/**
6856 	 * the number of output vectors pointed to by @vectors.
6857 	 */
6858 	uint numVectors;
6859 	/**
6860 	 * initialize to 0. Will be set to the number of bytes
6861 	 * that have been sent
6862 	 */
6863 	uint bytesSent;
6864 	/**
6865 	 * a pointer
6866 	 * to an array of #GSocketControlMessages, or %NULL.
6867 	 */
6868 	GSocketControlMessage** controlMessages;
6869 	/**
6870 	 * number of elements in @control_messages.
6871 	 */
6872 	uint numControlMessages;
6873 }
6874 
6875 struct GOutputStream
6876 {
6877 	GObject parentInstance;
6878 	GOutputStreamPrivate* priv;
6879 }
6880 
6881 struct GOutputStreamClass
6882 {
6883 	GObjectClass parentClass;
6884 	/**
6885 	 *
6886 	 * Params:
6887 	 *     stream = a #GOutputStream.
6888 	 *     buffer = the buffer containing the data to write.
6889 	 *     count = the number of bytes to write
6890 	 *     cancellable = optional cancellable object
6891 	 * Returns: Number of bytes written, or -1 on error
6892 	 *
6893 	 * Throws: GException on failure.
6894 	 */
6895 	extern(C) ptrdiff_t function(GOutputStream* stream, void* buffer, size_t count, GCancellable* cancellable, GError** err) writeFn;
6896 	/**
6897 	 *
6898 	 * Params:
6899 	 *     stream = a #GOutputStream.
6900 	 *     source = a #GInputStream.
6901 	 *     flags = a set of #GOutputStreamSpliceFlags.
6902 	 *     cancellable = optional #GCancellable object, %NULL to ignore.
6903 	 * Returns: a #gssize containing the size of the data spliced, or
6904 	 *     -1 if an error occurred. Note that if the number of bytes
6905 	 *     spliced is greater than %G_MAXSSIZE, then that will be
6906 	 *     returned, and there is no way to determine the actual number
6907 	 *     of bytes spliced.
6908 	 *
6909 	 * Throws: GException on failure.
6910 	 */
6911 	extern(C) ptrdiff_t function(GOutputStream* stream, GInputStream* source, GOutputStreamSpliceFlags flags, GCancellable* cancellable, GError** err) splice;
6912 	/**
6913 	 *
6914 	 * Params:
6915 	 *     stream = a #GOutputStream.
6916 	 *     cancellable = optional cancellable object
6917 	 * Returns: %TRUE on success, %FALSE on error
6918 	 *
6919 	 * Throws: GException on failure.
6920 	 */
6921 	extern(C) int function(GOutputStream* stream, GCancellable* cancellable, GError** err) flush;
6922 	/** */
6923 	extern(C) int function(GOutputStream* stream, GCancellable* cancellable, GError** err) closeFn;
6924 	/** */
6925 	extern(C) void function(GOutputStream* stream, void* buffer, size_t count, int ioPriority, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) writeAsync;
6926 	/**
6927 	 *
6928 	 * Params:
6929 	 *     stream = a #GOutputStream.
6930 	 *     result = a #GAsyncResult.
6931 	 * Returns: a #gssize containing the number of bytes written to the stream.
6932 	 *
6933 	 * Throws: GException on failure.
6934 	 */
6935 	extern(C) ptrdiff_t function(GOutputStream* stream, GAsyncResult* result, GError** err) writeFinish;
6936 	/** */
6937 	extern(C) void function(GOutputStream* stream, GInputStream* source, GOutputStreamSpliceFlags flags, int ioPriority, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) spliceAsync;
6938 	/**
6939 	 *
6940 	 * Params:
6941 	 *     stream = a #GOutputStream.
6942 	 *     result = a #GAsyncResult.
6943 	 * Returns: a #gssize of the number of bytes spliced. Note that if the
6944 	 *     number of bytes spliced is greater than %G_MAXSSIZE, then that
6945 	 *     will be returned, and there is no way to determine the actual
6946 	 *     number of bytes spliced.
6947 	 *
6948 	 * Throws: GException on failure.
6949 	 */
6950 	extern(C) ptrdiff_t function(GOutputStream* stream, GAsyncResult* result, GError** err) spliceFinish;
6951 	/** */
6952 	extern(C) void function(GOutputStream* stream, int ioPriority, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) flushAsync;
6953 	/**
6954 	 *
6955 	 * Params:
6956 	 *     stream = a #GOutputStream.
6957 	 *     result = a GAsyncResult.
6958 	 * Returns: %TRUE if flush operation succeeded, %FALSE otherwise.
6959 	 *
6960 	 * Throws: GException on failure.
6961 	 */
6962 	extern(C) int function(GOutputStream* stream, GAsyncResult* result, GError** err) flushFinish;
6963 	/** */
6964 	extern(C) void function(GOutputStream* stream, int ioPriority, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) closeAsync;
6965 	/**
6966 	 *
6967 	 * Params:
6968 	 *     stream = a #GOutputStream.
6969 	 *     result = a #GAsyncResult.
6970 	 * Returns: %TRUE if stream was successfully closed, %FALSE otherwise.
6971 	 *
6972 	 * Throws: GException on failure.
6973 	 */
6974 	extern(C) int function(GOutputStream* stream, GAsyncResult* result, GError** err) closeFinish;
6975 	/**
6976 	 *
6977 	 * Params:
6978 	 *     stream = a #GOutputStream.
6979 	 *     vectors = the buffer containing the #GOutputVectors to write.
6980 	 *     nVectors = the number of vectors to write
6981 	 *     bytesWritten = location to store the number of bytes that were
6982 	 *         written to the stream
6983 	 *     cancellable = optional cancellable object
6984 	 * Returns: %TRUE on success, %FALSE if there was an error
6985 	 *
6986 	 * Throws: GException on failure.
6987 	 */
6988 	extern(C) int function(GOutputStream* stream, GOutputVector* vectors, size_t nVectors, size_t* bytesWritten, GCancellable* cancellable, GError** err) writevFn;
6989 	/** */
6990 	extern(C) void function(GOutputStream* stream, GOutputVector* vectors, size_t nVectors, int ioPriority, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) writevAsync;
6991 	/**
6992 	 *
6993 	 * Params:
6994 	 *     stream = a #GOutputStream.
6995 	 *     result = a #GAsyncResult.
6996 	 *     bytesWritten = location to store the number of bytes that were written to the stream
6997 	 * Returns: %TRUE on success, %FALSE if there was an error
6998 	 *
6999 	 * Throws: GException on failure.
7000 	 */
7001 	extern(C) int function(GOutputStream* stream, GAsyncResult* result, size_t* bytesWritten, GError** err) writevFinish;
7002 	/** */
7003 	extern(C) void function() GReserved4;
7004 	/** */
7005 	extern(C) void function() GReserved5;
7006 	/** */
7007 	extern(C) void function() GReserved6;
7008 	/** */
7009 	extern(C) void function() GReserved7;
7010 	/** */
7011 	extern(C) void function() GReserved8;
7012 }
7013 
7014 struct GOutputStreamPrivate;
7015 
7016 /**
7017  * Structure used for scatter/gather data output.
7018  * You generally pass in an array of #GOutputVectors
7019  * and the operation will use all the buffers as if they were
7020  * one buffer.
7021  *
7022  * Since: 2.22
7023  */
7024 struct GOutputVector
7025 {
7026 	/**
7027 	 * Pointer to a buffer of data to read.
7028 	 */
7029 	void* buffer;
7030 	/**
7031 	 * the size of @buffer.
7032 	 */
7033 	size_t size;
7034 }
7035 
7036 struct GPermission
7037 {
7038 	GObject parentInstance;
7039 	GPermissionPrivate* priv;
7040 }
7041 
7042 struct GPermissionClass
7043 {
7044 	GObjectClass parentClass;
7045 	/**
7046 	 *
7047 	 * Params:
7048 	 *     permission = a #GPermission instance
7049 	 *     cancellable = a #GCancellable, or %NULL
7050 	 * Returns: %TRUE if the permission was successfully acquired
7051 	 *
7052 	 * Throws: GException on failure.
7053 	 */
7054 	extern(C) int function(GPermission* permission, GCancellable* cancellable, GError** err) acquire;
7055 	/** */
7056 	extern(C) void function(GPermission* permission, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) acquireAsync;
7057 	/**
7058 	 *
7059 	 * Params:
7060 	 *     permission = a #GPermission instance
7061 	 *     result = the #GAsyncResult given to the #GAsyncReadyCallback
7062 	 * Returns: %TRUE if the permission was successfully acquired
7063 	 *
7064 	 * Throws: GException on failure.
7065 	 */
7066 	extern(C) int function(GPermission* permission, GAsyncResult* result, GError** err) acquireFinish;
7067 	/**
7068 	 *
7069 	 * Params:
7070 	 *     permission = a #GPermission instance
7071 	 *     cancellable = a #GCancellable, or %NULL
7072 	 * Returns: %TRUE if the permission was successfully released
7073 	 *
7074 	 * Throws: GException on failure.
7075 	 */
7076 	extern(C) int function(GPermission* permission, GCancellable* cancellable, GError** err) release;
7077 	/** */
7078 	extern(C) void function(GPermission* permission, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) releaseAsync;
7079 	/**
7080 	 *
7081 	 * Params:
7082 	 *     permission = a #GPermission instance
7083 	 *     result = the #GAsyncResult given to the #GAsyncReadyCallback
7084 	 * Returns: %TRUE if the permission was successfully released
7085 	 *
7086 	 * Throws: GException on failure.
7087 	 */
7088 	extern(C) int function(GPermission* permission, GAsyncResult* result, GError** err) releaseFinish;
7089 	void*[16] reserved;
7090 }
7091 
7092 struct GPermissionPrivate;
7093 
7094 struct GPollableInputStream;
7095 
7096 /**
7097  * The interface for pollable input streams.
7098  *
7099  * The default implementation of @can_poll always returns %TRUE.
7100  *
7101  * The default implementation of @read_nonblocking calls
7102  * g_pollable_input_stream_is_readable(), and then calls
7103  * g_input_stream_read() if it returns %TRUE. This means you only need
7104  * to override it if it is possible that your @is_readable
7105  * implementation may return %TRUE when the stream is not actually
7106  * readable.
7107  *
7108  * Since: 2.28
7109  */
7110 struct GPollableInputStreamInterface
7111 {
7112 	/**
7113 	 * The parent interface.
7114 	 */
7115 	GTypeInterface gIface;
7116 	/**
7117 	 *
7118 	 * Params:
7119 	 *     stream = a #GPollableInputStream.
7120 	 * Returns: %TRUE if @stream is pollable, %FALSE if not.
7121 	 */
7122 	extern(C) int function(GPollableInputStream* stream) canPoll;
7123 	/**
7124 	 *
7125 	 * Params:
7126 	 *     stream = a #GPollableInputStream.
7127 	 * Returns: %TRUE if @stream is readable, %FALSE if not. If an error
7128 	 *     has occurred on @stream, this will result in
7129 	 *     g_pollable_input_stream_is_readable() returning %TRUE, and the
7130 	 *     next attempt to read will return the error.
7131 	 */
7132 	extern(C) int function(GPollableInputStream* stream) isReadable;
7133 	/**
7134 	 *
7135 	 * Params:
7136 	 *     stream = a #GPollableInputStream.
7137 	 *     cancellable = a #GCancellable, or %NULL
7138 	 * Returns: a new #GSource
7139 	 */
7140 	extern(C) GSource* function(GPollableInputStream* stream, GCancellable* cancellable) createSource;
7141 	/**
7142 	 *
7143 	 * Params:
7144 	 *     stream = a #GPollableInputStream
7145 	 *     buffer = a buffer to
7146 	 *         read data into (which should be at least @count bytes long).
7147 	 *     count = the number of bytes you want to read
7148 	 * Returns: the number of bytes read, or -1 on error (including
7149 	 *     %G_IO_ERROR_WOULD_BLOCK).
7150 	 *
7151 	 * Throws: GException on failure.
7152 	 */
7153 	extern(C) ptrdiff_t function(GPollableInputStream* stream, void* buffer, size_t count, GError** err) readNonblocking;
7154 }
7155 
7156 struct GPollableOutputStream;
7157 
7158 /**
7159  * The interface for pollable output streams.
7160  *
7161  * The default implementation of @can_poll always returns %TRUE.
7162  *
7163  * The default implementation of @write_nonblocking calls
7164  * g_pollable_output_stream_is_writable(), and then calls
7165  * g_output_stream_write() if it returns %TRUE. This means you only
7166  * need to override it if it is possible that your @is_writable
7167  * implementation may return %TRUE when the stream is not actually
7168  * writable.
7169  *
7170  * The default implementation of @writev_nonblocking calls
7171  * g_pollable_output_stream_write_nonblocking() for each vector, and converts
7172  * its return value and error (if set) to a #GPollableReturn. You should
7173  * override this where possible to avoid having to allocate a #GError to return
7174  * %G_IO_ERROR_WOULD_BLOCK.
7175  *
7176  * Since: 2.28
7177  */
7178 struct GPollableOutputStreamInterface
7179 {
7180 	/**
7181 	 * The parent interface.
7182 	 */
7183 	GTypeInterface gIface;
7184 	/**
7185 	 *
7186 	 * Params:
7187 	 *     stream = a #GPollableOutputStream.
7188 	 * Returns: %TRUE if @stream is pollable, %FALSE if not.
7189 	 */
7190 	extern(C) int function(GPollableOutputStream* stream) canPoll;
7191 	/**
7192 	 *
7193 	 * Params:
7194 	 *     stream = a #GPollableOutputStream.
7195 	 * Returns: %TRUE if @stream is writable, %FALSE if not. If an error
7196 	 *     has occurred on @stream, this will result in
7197 	 *     g_pollable_output_stream_is_writable() returning %TRUE, and the
7198 	 *     next attempt to write will return the error.
7199 	 */
7200 	extern(C) int function(GPollableOutputStream* stream) isWritable;
7201 	/**
7202 	 *
7203 	 * Params:
7204 	 *     stream = a #GPollableOutputStream.
7205 	 *     cancellable = a #GCancellable, or %NULL
7206 	 * Returns: a new #GSource
7207 	 */
7208 	extern(C) GSource* function(GPollableOutputStream* stream, GCancellable* cancellable) createSource;
7209 	/**
7210 	 *
7211 	 * Params:
7212 	 *     stream = a #GPollableOutputStream
7213 	 *     buffer = a buffer to write
7214 	 *         data from
7215 	 *     count = the number of bytes you want to write
7216 	 * Returns: the number of bytes written, or -1 on error (including
7217 	 *     %G_IO_ERROR_WOULD_BLOCK).
7218 	 *
7219 	 * Throws: GException on failure.
7220 	 */
7221 	extern(C) ptrdiff_t function(GPollableOutputStream* stream, void* buffer, size_t count, GError** err) writeNonblocking;
7222 	/**
7223 	 *
7224 	 * Params:
7225 	 *     stream = a #GPollableOutputStream
7226 	 *     vectors = the buffer containing the #GOutputVectors to write.
7227 	 *     nVectors = the number of vectors to write
7228 	 *     bytesWritten = location to store the number of bytes that were
7229 	 *         written to the stream
7230 	 * Returns: %@G_POLLABLE_RETURN_OK on success, %G_POLLABLE_RETURN_WOULD_BLOCK
7231 	 *     if the stream is not currently writable (and @error is *not* set), or
7232 	 *     %G_POLLABLE_RETURN_FAILED if there was an error in which case @error will
7233 	 *     be set.
7234 	 *
7235 	 * Throws: GException on failure.
7236 	 */
7237 	extern(C) GPollableReturn function(GPollableOutputStream* stream, GOutputVector* vectors, size_t nVectors, size_t* bytesWritten, GError** err) writevNonblocking;
7238 }
7239 
7240 struct GPropertyAction;
7241 
7242 struct GProxy;
7243 
7244 struct GProxyAddress
7245 {
7246 	GInetSocketAddress parentInstance;
7247 	GProxyAddressPrivate* priv;
7248 }
7249 
7250 /**
7251  * Class structure for #GProxyAddress.
7252  *
7253  * Since: 2.26
7254  */
7255 struct GProxyAddressClass
7256 {
7257 	GInetSocketAddressClass parentClass;
7258 }
7259 
7260 struct GProxyAddressEnumerator
7261 {
7262 	GSocketAddressEnumerator parentInstance;
7263 	GProxyAddressEnumeratorPrivate* priv;
7264 }
7265 
7266 /**
7267  * Class structure for #GProxyAddressEnumerator.
7268  */
7269 struct GProxyAddressEnumeratorClass
7270 {
7271 	GSocketAddressEnumeratorClass parentClass;
7272 	/** */
7273 	extern(C) void function() GReserved1;
7274 	/** */
7275 	extern(C) void function() GReserved2;
7276 	/** */
7277 	extern(C) void function() GReserved3;
7278 	/** */
7279 	extern(C) void function() GReserved4;
7280 	/** */
7281 	extern(C) void function() GReserved5;
7282 	/** */
7283 	extern(C) void function() GReserved6;
7284 	/** */
7285 	extern(C) void function() GReserved7;
7286 }
7287 
7288 struct GProxyAddressEnumeratorPrivate;
7289 
7290 struct GProxyAddressPrivate;
7291 
7292 /**
7293  * Provides an interface for handling proxy connection and payload.
7294  *
7295  * Since: 2.26
7296  */
7297 struct GProxyInterface
7298 {
7299 	/**
7300 	 * The parent interface.
7301 	 */
7302 	GTypeInterface gIface;
7303 	/**
7304 	 *
7305 	 * Params:
7306 	 *     proxy = a #GProxy
7307 	 *     connection = a #GIOStream
7308 	 *     proxyAddress = a #GProxyAddress
7309 	 *     cancellable = a #GCancellable
7310 	 * Returns: a #GIOStream that will replace @connection. This might
7311 	 *     be the same as @connection, in which case a reference
7312 	 *     will be added.
7313 	 *
7314 	 * Throws: GException on failure.
7315 	 */
7316 	extern(C) GIOStream* function(GProxy* proxy, GIOStream* connection, GProxyAddress* proxyAddress, GCancellable* cancellable, GError** err) connect;
7317 	/** */
7318 	extern(C) void function(GProxy* proxy, GIOStream* connection, GProxyAddress* proxyAddress, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) connectAsync;
7319 	/**
7320 	 *
7321 	 * Params:
7322 	 *     proxy = a #GProxy
7323 	 *     result = a #GAsyncResult
7324 	 * Returns: a #GIOStream.
7325 	 *
7326 	 * Throws: GException on failure.
7327 	 */
7328 	extern(C) GIOStream* function(GProxy* proxy, GAsyncResult* result, GError** err) connectFinish;
7329 	/**
7330 	 *
7331 	 * Params:
7332 	 *     proxy = a #GProxy
7333 	 * Returns: %TRUE if hostname resolution is supported.
7334 	 */
7335 	extern(C) int function(GProxy* proxy) supportsHostname;
7336 }
7337 
7338 struct GProxyResolver;
7339 
7340 /**
7341  * The virtual function table for #GProxyResolver.
7342  */
7343 struct GProxyResolverInterface
7344 {
7345 	/**
7346 	 * The parent interface.
7347 	 */
7348 	GTypeInterface gIface;
7349 	/**
7350 	 *
7351 	 * Params:
7352 	 *     resolver = a #GProxyResolver
7353 	 * Returns: %TRUE if @resolver is supported.
7354 	 */
7355 	extern(C) int function(GProxyResolver* resolver) isSupported;
7356 	/**
7357 	 *
7358 	 * Params:
7359 	 *     resolver = a #GProxyResolver
7360 	 *     uri = a URI representing the destination to connect to
7361 	 *     cancellable = a #GCancellable, or %NULL
7362 	 * Returns: A
7363 	 *     NULL-terminated array of proxy URIs. Must be freed
7364 	 *     with g_strfreev().
7365 	 *
7366 	 * Throws: GException on failure.
7367 	 */
7368 	extern(C) char** function(GProxyResolver* resolver, const(char)* uri, GCancellable* cancellable, GError** err) lookup;
7369 	/** */
7370 	extern(C) void function(GProxyResolver* resolver, const(char)* uri, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) lookupAsync;
7371 	/**
7372 	 *
7373 	 * Params:
7374 	 *     resolver = a #GProxyResolver
7375 	 *     result = the result passed to your #GAsyncReadyCallback
7376 	 * Returns: A
7377 	 *     NULL-terminated array of proxy URIs. Must be freed
7378 	 *     with g_strfreev().
7379 	 *
7380 	 * Throws: GException on failure.
7381 	 */
7382 	extern(C) char** function(GProxyResolver* resolver, GAsyncResult* result, GError** err) lookupFinish;
7383 }
7384 
7385 struct GRemoteActionGroup;
7386 
7387 /**
7388  * The virtual function table for #GRemoteActionGroup.
7389  *
7390  * Since: 2.32
7391  */
7392 struct GRemoteActionGroupInterface
7393 {
7394 	GTypeInterface gIface;
7395 	/** */
7396 	extern(C) void function(GRemoteActionGroup* remote, const(char)* actionName, GVariant* parameter, GVariant* platformData) activateActionFull;
7397 	/** */
7398 	extern(C) void function(GRemoteActionGroup* remote, const(char)* actionName, GVariant* value, GVariant* platformData) changeActionStateFull;
7399 }
7400 
7401 struct GResolver
7402 {
7403 	GObject parentInstance;
7404 	GResolverPrivate* priv;
7405 }
7406 
7407 struct GResolverClass
7408 {
7409 	GObjectClass parentClass;
7410 	/** */
7411 	extern(C) void function(GResolver* resolver) reload;
7412 	/**
7413 	 *
7414 	 * Params:
7415 	 *     resolver = a #GResolver
7416 	 *     hostname = the hostname to look up
7417 	 *     cancellable = a #GCancellable, or %NULL
7418 	 * Returns: a non-empty #GList
7419 	 *     of #GInetAddress, or %NULL on error. You
7420 	 *     must unref each of the addresses and free the list when you are
7421 	 *     done with it. (You can use g_resolver_free_addresses() to do this.)
7422 	 *
7423 	 * Throws: GException on failure.
7424 	 */
7425 	extern(C) GList* function(GResolver* resolver, const(char)* hostname, GCancellable* cancellable, GError** err) lookupByName;
7426 	/** */
7427 	extern(C) void function(GResolver* resolver, const(char)* hostname, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) lookupByNameAsync;
7428 	/**
7429 	 *
7430 	 * Params:
7431 	 *     resolver = a #GResolver
7432 	 *     result = the result passed to your #GAsyncReadyCallback
7433 	 * Returns: a #GList
7434 	 *     of #GInetAddress, or %NULL on error. See g_resolver_lookup_by_name()
7435 	 *     for more details.
7436 	 *
7437 	 * Throws: GException on failure.
7438 	 */
7439 	extern(C) GList* function(GResolver* resolver, GAsyncResult* result, GError** err) lookupByNameFinish;
7440 	/**
7441 	 *
7442 	 * Params:
7443 	 *     resolver = a #GResolver
7444 	 *     address = the address to reverse-resolve
7445 	 *     cancellable = a #GCancellable, or %NULL
7446 	 * Returns: a hostname (either ASCII-only, or in ASCII-encoded
7447 	 *     form), or %NULL on error.
7448 	 *
7449 	 * Throws: GException on failure.
7450 	 */
7451 	extern(C) char* function(GResolver* resolver, GInetAddress* address, GCancellable* cancellable, GError** err) lookupByAddress;
7452 	/** */
7453 	extern(C) void function(GResolver* resolver, GInetAddress* address, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) lookupByAddressAsync;
7454 	/**
7455 	 *
7456 	 * Params:
7457 	 *     resolver = a #GResolver
7458 	 *     result = the result passed to your #GAsyncReadyCallback
7459 	 * Returns: a hostname (either ASCII-only, or in ASCII-encoded
7460 	 *     form), or %NULL on error.
7461 	 *
7462 	 * Throws: GException on failure.
7463 	 */
7464 	extern(C) char* function(GResolver* resolver, GAsyncResult* result, GError** err) lookupByAddressFinish;
7465 	/** */
7466 	extern(C) GList* function(GResolver* resolver, const(char)* rrname, GCancellable* cancellable, GError** err) lookupService;
7467 	/** */
7468 	extern(C) void function(GResolver* resolver, const(char)* rrname, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) lookupServiceAsync;
7469 	/**
7470 	 *
7471 	 * Params:
7472 	 *     resolver = a #GResolver
7473 	 *     result = the result passed to your #GAsyncReadyCallback
7474 	 * Returns: a non-empty #GList of
7475 	 *     #GSrvTarget, or %NULL on error. See g_resolver_lookup_service() for more
7476 	 *     details.
7477 	 *
7478 	 * Throws: GException on failure.
7479 	 */
7480 	extern(C) GList* function(GResolver* resolver, GAsyncResult* result, GError** err) lookupServiceFinish;
7481 	/**
7482 	 *
7483 	 * Params:
7484 	 *     resolver = a #GResolver
7485 	 *     rrname = the DNS name to look up the record for
7486 	 *     recordType = the type of DNS record to look up
7487 	 *     cancellable = a #GCancellable, or %NULL
7488 	 * Returns: a non-empty #GList of
7489 	 *     #GVariant, or %NULL on error. You must free each of the records and the list
7490 	 *     when you are done with it. (You can use g_list_free_full() with
7491 	 *     g_variant_unref() to do this.)
7492 	 *
7493 	 * Throws: GException on failure.
7494 	 */
7495 	extern(C) GList* function(GResolver* resolver, const(char)* rrname, GResolverRecordType recordType, GCancellable* cancellable, GError** err) lookupRecords;
7496 	/** */
7497 	extern(C) void function(GResolver* resolver, const(char)* rrname, GResolverRecordType recordType, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) lookupRecordsAsync;
7498 	/**
7499 	 *
7500 	 * Params:
7501 	 *     resolver = a #GResolver
7502 	 *     result = the result passed to your #GAsyncReadyCallback
7503 	 * Returns: a non-empty #GList of
7504 	 *     #GVariant, or %NULL on error. You must free each of the records and the list
7505 	 *     when you are done with it. (You can use g_list_free_full() with
7506 	 *     g_variant_unref() to do this.)
7507 	 *
7508 	 * Throws: GException on failure.
7509 	 */
7510 	extern(C) GList* function(GResolver* resolver, GAsyncResult* result, GError** err) lookupRecordsFinish;
7511 	/** */
7512 	extern(C) void function(GResolver* resolver, const(char)* hostname, GResolverNameLookupFlags flags, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) lookupByNameWithFlagsAsync;
7513 	/**
7514 	 *
7515 	 * Params:
7516 	 *     resolver = a #GResolver
7517 	 *     result = the result passed to your #GAsyncReadyCallback
7518 	 * Returns: a #GList
7519 	 *     of #GInetAddress, or %NULL on error. See g_resolver_lookup_by_name()
7520 	 *     for more details.
7521 	 *
7522 	 * Throws: GException on failure.
7523 	 */
7524 	extern(C) GList* function(GResolver* resolver, GAsyncResult* result, GError** err) lookupByNameWithFlagsFinish;
7525 	/**
7526 	 *
7527 	 * Params:
7528 	 *     resolver = a #GResolver
7529 	 *     hostname = the hostname to look up
7530 	 *     flags = extra #GResolverNameLookupFlags for the lookup
7531 	 *     cancellable = a #GCancellable, or %NULL
7532 	 * Returns: a non-empty #GList
7533 	 *     of #GInetAddress, or %NULL on error. You
7534 	 *     must unref each of the addresses and free the list when you are
7535 	 *     done with it. (You can use g_resolver_free_addresses() to do this.)
7536 	 *
7537 	 * Throws: GException on failure.
7538 	 */
7539 	extern(C) GList* function(GResolver* resolver, const(char)* hostname, GResolverNameLookupFlags flags, GCancellable* cancellable, GError** err) lookupByNameWithFlags;
7540 }
7541 
7542 struct GResolverPrivate;
7543 
7544 struct GResource;
7545 
7546 struct GSeekable;
7547 
7548 /**
7549  * Provides an interface for implementing seekable functionality on I/O Streams.
7550  */
7551 struct GSeekableIface
7552 {
7553 	/**
7554 	 * The parent interface.
7555 	 */
7556 	GTypeInterface gIface;
7557 	/**
7558 	 *
7559 	 * Params:
7560 	 *     seekable = a #GSeekable.
7561 	 * Returns: the offset from the beginning of the buffer.
7562 	 */
7563 	extern(C) long function(GSeekable* seekable) tell;
7564 	/**
7565 	 *
7566 	 * Params:
7567 	 *     seekable = a #GSeekable.
7568 	 * Returns: %TRUE if @seekable can be seeked. %FALSE otherwise.
7569 	 */
7570 	extern(C) int function(GSeekable* seekable) canSeek;
7571 	/**
7572 	 *
7573 	 * Params:
7574 	 *     seekable = a #GSeekable.
7575 	 *     offset = a #goffset.
7576 	 *     type = a #GSeekType.
7577 	 *     cancellable = optional #GCancellable object, %NULL to ignore.
7578 	 * Returns: %TRUE if successful. If an error
7579 	 *     has occurred, this function will return %FALSE and set @error
7580 	 *     appropriately if present.
7581 	 *
7582 	 * Throws: GException on failure.
7583 	 */
7584 	extern(C) int function(GSeekable* seekable, long offset, GSeekType type, GCancellable* cancellable, GError** err) seek;
7585 	/**
7586 	 *
7587 	 * Params:
7588 	 *     seekable = a #GSeekable.
7589 	 * Returns: %TRUE if the stream can be truncated, %FALSE otherwise.
7590 	 */
7591 	extern(C) int function(GSeekable* seekable) canTruncate;
7592 	/**
7593 	 *
7594 	 * Params:
7595 	 *     seekable = a #GSeekable.
7596 	 *     offset = new length for @seekable, in bytes.
7597 	 *     cancellable = optional #GCancellable object, %NULL to ignore.
7598 	 * Returns: %TRUE if successful. If an error
7599 	 *     has occurred, this function will return %FALSE and set @error
7600 	 *     appropriately if present.
7601 	 *
7602 	 * Throws: GException on failure.
7603 	 */
7604 	extern(C) int function(GSeekable* seekable, long offset, GCancellable* cancellable, GError** err) truncateFn;
7605 }
7606 
7607 struct GSettings
7608 {
7609 	GObject parentInstance;
7610 	GSettingsPrivate* priv;
7611 }
7612 
7613 struct GSettingsBackend
7614 {
7615 	GObject parentInstance;
7616 	GSettingsBackendPrivate* priv;
7617 }
7618 
7619 /**
7620  * Class structure for #GSettingsBackend.
7621  */
7622 struct GSettingsBackendClass
7623 {
7624 	GObjectClass parentClass;
7625 	/** */
7626 	extern(C) GVariant* function(GSettingsBackend* backend, const(char)* key, GVariantType* expectedType, int defaultValue) read;
7627 	/** */
7628 	extern(C) int function(GSettingsBackend* backend, const(char)* key) getWritable;
7629 	/** */
7630 	extern(C) int function(GSettingsBackend* backend, const(char)* key, GVariant* value, void* originTag) write;
7631 	/** */
7632 	extern(C) int function(GSettingsBackend* backend, GTree* tree, void* originTag) writeTree;
7633 	/** */
7634 	extern(C) void function(GSettingsBackend* backend, const(char)* key, void* originTag) reset;
7635 	/** */
7636 	extern(C) void function(GSettingsBackend* backend, const(char)* name) subscribe;
7637 	/** */
7638 	extern(C) void function(GSettingsBackend* backend, const(char)* name) unsubscribe;
7639 	/** */
7640 	extern(C) void function(GSettingsBackend* backend) sync;
7641 	/** */
7642 	extern(C) GPermission* function(GSettingsBackend* backend, const(char)* path) getPermission;
7643 	/** */
7644 	extern(C) GVariant* function(GSettingsBackend* backend, const(char)* key, GVariantType* expectedType) readUserValue;
7645 	void*[23] padding;
7646 }
7647 
7648 struct GSettingsBackendPrivate;
7649 
7650 struct GSettingsClass
7651 {
7652 	GObjectClass parentClass;
7653 	/** */
7654 	extern(C) void function(GSettings* settings, const(char)* key) writableChanged;
7655 	/** */
7656 	extern(C) void function(GSettings* settings, const(char)* key) changed;
7657 	/** */
7658 	extern(C) int function(GSettings* settings, GQuark key) writableChangeEvent;
7659 	/** */
7660 	extern(C) int function(GSettings* settings, GQuark* keys, int nKeys) changeEvent;
7661 	void*[20] padding;
7662 }
7663 
7664 struct GSettingsPrivate;
7665 
7666 struct GSettingsSchema;
7667 
7668 struct GSettingsSchemaKey;
7669 
7670 struct GSettingsSchemaSource;
7671 
7672 struct GSimpleAction;
7673 
7674 struct GSimpleActionGroup
7675 {
7676 	GObject parentInstance;
7677 	GSimpleActionGroupPrivate* priv;
7678 }
7679 
7680 struct GSimpleActionGroupClass
7681 {
7682 	GObjectClass parentClass;
7683 	void*[12] padding;
7684 }
7685 
7686 struct GSimpleActionGroupPrivate;
7687 
7688 struct GSimpleAsyncResult;
7689 
7690 struct GSimpleAsyncResultClass;
7691 
7692 struct GSimpleIOStream;
7693 
7694 struct GSimplePermission;
7695 
7696 struct GSimpleProxyResolver
7697 {
7698 	GObject parentInstance;
7699 	GSimpleProxyResolverPrivate* priv;
7700 }
7701 
7702 struct GSimpleProxyResolverClass
7703 {
7704 	GObjectClass parentClass;
7705 	/** */
7706 	extern(C) void function() GReserved1;
7707 	/** */
7708 	extern(C) void function() GReserved2;
7709 	/** */
7710 	extern(C) void function() GReserved3;
7711 	/** */
7712 	extern(C) void function() GReserved4;
7713 	/** */
7714 	extern(C) void function() GReserved5;
7715 }
7716 
7717 struct GSimpleProxyResolverPrivate;
7718 
7719 struct GSocket
7720 {
7721 	GObject parentInstance;
7722 	GSocketPrivate* priv;
7723 }
7724 
7725 struct GSocketAddress
7726 {
7727 	GObject parentInstance;
7728 }
7729 
7730 struct GSocketAddressClass
7731 {
7732 	GObjectClass parentClass;
7733 	/**
7734 	 *
7735 	 * Params:
7736 	 *     address = a #GSocketAddress
7737 	 * Returns: the socket family type of @address
7738 	 */
7739 	extern(C) GSocketFamily function(GSocketAddress* address) getFamily;
7740 	/**
7741 	 *
7742 	 * Params:
7743 	 *     address = a #GSocketAddress
7744 	 * Returns: the size of the native struct sockaddr that
7745 	 *     @address represents
7746 	 */
7747 	extern(C) ptrdiff_t function(GSocketAddress* address) getNativeSize;
7748 	/**
7749 	 *
7750 	 * Params:
7751 	 *     address = a #GSocketAddress
7752 	 *     dest = a pointer to a memory location that will contain the native
7753 	 *         struct sockaddr
7754 	 *     destlen = the size of @dest. Must be at least as large as
7755 	 *         g_socket_address_get_native_size()
7756 	 * Returns: %TRUE if @dest was filled in, %FALSE on error
7757 	 *
7758 	 * Throws: GException on failure.
7759 	 */
7760 	extern(C) int function(GSocketAddress* address, void* dest, size_t destlen, GError** err) toNative;
7761 }
7762 
7763 struct GSocketAddressEnumerator
7764 {
7765 	GObject parentInstance;
7766 }
7767 
7768 /**
7769  * Class structure for #GSocketAddressEnumerator.
7770  */
7771 struct GSocketAddressEnumeratorClass
7772 {
7773 	GObjectClass parentClass;
7774 	/**
7775 	 *
7776 	 * Params:
7777 	 *     enumerator = a #GSocketAddressEnumerator
7778 	 *     cancellable = optional #GCancellable object, %NULL to ignore.
7779 	 * Returns: a #GSocketAddress (owned by the caller), or %NULL on
7780 	 *     error (in which case *@error will be set) or if there are no
7781 	 *     more addresses.
7782 	 *
7783 	 * Throws: GException on failure.
7784 	 */
7785 	extern(C) GSocketAddress* function(GSocketAddressEnumerator* enumerator, GCancellable* cancellable, GError** err) next;
7786 	/** */
7787 	extern(C) void function(GSocketAddressEnumerator* enumerator, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) nextAsync;
7788 	/**
7789 	 *
7790 	 * Params:
7791 	 *     enumerator = a #GSocketAddressEnumerator
7792 	 *     result = a #GAsyncResult
7793 	 * Returns: a #GSocketAddress (owned by the caller), or %NULL on
7794 	 *     error (in which case *@error will be set) or if there are no
7795 	 *     more addresses.
7796 	 *
7797 	 * Throws: GException on failure.
7798 	 */
7799 	extern(C) GSocketAddress* function(GSocketAddressEnumerator* enumerator, GAsyncResult* result, GError** err) nextFinish;
7800 }
7801 
7802 struct GSocketClass
7803 {
7804 	GObjectClass parentClass;
7805 	/** */
7806 	extern(C) void function() GReserved1;
7807 	/** */
7808 	extern(C) void function() GReserved2;
7809 	/** */
7810 	extern(C) void function() GReserved3;
7811 	/** */
7812 	extern(C) void function() GReserved4;
7813 	/** */
7814 	extern(C) void function() GReserved5;
7815 	/** */
7816 	extern(C) void function() GReserved6;
7817 	/** */
7818 	extern(C) void function() GReserved7;
7819 	/** */
7820 	extern(C) void function() GReserved8;
7821 	/** */
7822 	extern(C) void function() GReserved9;
7823 	/** */
7824 	extern(C) void function() GReserved10;
7825 }
7826 
7827 struct GSocketClient
7828 {
7829 	GObject parentInstance;
7830 	GSocketClientPrivate* priv;
7831 }
7832 
7833 struct GSocketClientClass
7834 {
7835 	GObjectClass parentClass;
7836 	/** */
7837 	extern(C) void function(GSocketClient* client, GSocketClientEvent event, GSocketConnectable* connectable, GIOStream* connection) event;
7838 	/** */
7839 	extern(C) void function() GReserved1;
7840 	/** */
7841 	extern(C) void function() GReserved2;
7842 	/** */
7843 	extern(C) void function() GReserved3;
7844 	/** */
7845 	extern(C) void function() GReserved4;
7846 }
7847 
7848 struct GSocketClientPrivate;
7849 
7850 struct GSocketConnectable;
7851 
7852 /**
7853  * Provides an interface for returning a #GSocketAddressEnumerator
7854  * and #GProxyAddressEnumerator
7855  */
7856 struct GSocketConnectableIface
7857 {
7858 	/**
7859 	 * The parent interface.
7860 	 */
7861 	GTypeInterface gIface;
7862 	/**
7863 	 *
7864 	 * Params:
7865 	 *     connectable = a #GSocketConnectable
7866 	 * Returns: a new #GSocketAddressEnumerator.
7867 	 */
7868 	extern(C) GSocketAddressEnumerator* function(GSocketConnectable* connectable) enumerate;
7869 	/**
7870 	 *
7871 	 * Params:
7872 	 *     connectable = a #GSocketConnectable
7873 	 * Returns: a new #GSocketAddressEnumerator.
7874 	 */
7875 	extern(C) GSocketAddressEnumerator* function(GSocketConnectable* connectable) proxyEnumerate;
7876 	/**
7877 	 *
7878 	 * Params:
7879 	 *     connectable = a #GSocketConnectable
7880 	 * Returns: the formatted string
7881 	 */
7882 	extern(C) char* function(GSocketConnectable* connectable) toString;
7883 }
7884 
7885 struct GSocketConnection
7886 {
7887 	GIOStream parentInstance;
7888 	GSocketConnectionPrivate* priv;
7889 }
7890 
7891 struct GSocketConnectionClass
7892 {
7893 	GIOStreamClass parentClass;
7894 	/** */
7895 	extern(C) void function() GReserved1;
7896 	/** */
7897 	extern(C) void function() GReserved2;
7898 	/** */
7899 	extern(C) void function() GReserved3;
7900 	/** */
7901 	extern(C) void function() GReserved4;
7902 	/** */
7903 	extern(C) void function() GReserved5;
7904 	/** */
7905 	extern(C) void function() GReserved6;
7906 }
7907 
7908 struct GSocketConnectionPrivate;
7909 
7910 struct GSocketControlMessage
7911 {
7912 	GObject parentInstance;
7913 	GSocketControlMessagePrivate* priv;
7914 }
7915 
7916 /**
7917  * Class structure for #GSocketControlMessage.
7918  */
7919 struct GSocketControlMessageClass
7920 {
7921 	GObjectClass parentClass;
7922 	/**
7923 	 *
7924 	 * Params:
7925 	 *     message = a #GSocketControlMessage
7926 	 * Returns: The number of bytes required.
7927 	 */
7928 	extern(C) size_t function(GSocketControlMessage* message) getSize;
7929 	/**
7930 	 *
7931 	 * Params:
7932 	 *     message = a #GSocketControlMessage
7933 	 * Returns: an integer describing the level
7934 	 */
7935 	extern(C) int function(GSocketControlMessage* message) getLevel;
7936 	/** */
7937 	extern(C) int function(GSocketControlMessage* message) getType;
7938 	/** */
7939 	extern(C) void function(GSocketControlMessage* message, void* data) serialize;
7940 	/** */
7941 	extern(C) GSocketControlMessage* function(int level, int type, size_t size, void* data) deserialize;
7942 	/** */
7943 	extern(C) void function() GReserved1;
7944 	/** */
7945 	extern(C) void function() GReserved2;
7946 	/** */
7947 	extern(C) void function() GReserved3;
7948 	/** */
7949 	extern(C) void function() GReserved4;
7950 	/** */
7951 	extern(C) void function() GReserved5;
7952 }
7953 
7954 struct GSocketControlMessagePrivate;
7955 
7956 struct GSocketListener
7957 {
7958 	GObject parentInstance;
7959 	GSocketListenerPrivate* priv;
7960 }
7961 
7962 /**
7963  * Class structure for #GSocketListener.
7964  */
7965 struct GSocketListenerClass
7966 {
7967 	GObjectClass parentClass;
7968 	/** */
7969 	extern(C) void function(GSocketListener* listener) changed;
7970 	/** */
7971 	extern(C) void function(GSocketListener* listener, GSocketListenerEvent event, GSocket* socket) event;
7972 	/** */
7973 	extern(C) void function() GReserved2;
7974 	/** */
7975 	extern(C) void function() GReserved3;
7976 	/** */
7977 	extern(C) void function() GReserved4;
7978 	/** */
7979 	extern(C) void function() GReserved5;
7980 	/** */
7981 	extern(C) void function() GReserved6;
7982 }
7983 
7984 struct GSocketListenerPrivate;
7985 
7986 struct GSocketPrivate;
7987 
7988 struct GSocketService
7989 {
7990 	GSocketListener parentInstance;
7991 	GSocketServicePrivate* priv;
7992 }
7993 
7994 /**
7995  * Class structure for #GSocketService.
7996  */
7997 struct GSocketServiceClass
7998 {
7999 	GSocketListenerClass parentClass;
8000 	/** */
8001 	extern(C) int function(GSocketService* service, GSocketConnection* connection, GObject* sourceObject) incoming;
8002 	/** */
8003 	extern(C) void function() GReserved1;
8004 	/** */
8005 	extern(C) void function() GReserved2;
8006 	/** */
8007 	extern(C) void function() GReserved3;
8008 	/** */
8009 	extern(C) void function() GReserved4;
8010 	/** */
8011 	extern(C) void function() GReserved5;
8012 	/** */
8013 	extern(C) void function() GReserved6;
8014 }
8015 
8016 struct GSocketServicePrivate;
8017 
8018 struct GSrvTarget;
8019 
8020 struct GStaticResource
8021 {
8022 	ubyte* data;
8023 	size_t dataLen;
8024 	GResource* resource;
8025 	GStaticResource* next;
8026 	void* padding;
8027 }
8028 
8029 struct GSubprocess;
8030 
8031 struct GSubprocessLauncher;
8032 
8033 struct GTask;
8034 
8035 struct GTaskClass;
8036 
8037 struct GTcpConnection
8038 {
8039 	GSocketConnection parentInstance;
8040 	GTcpConnectionPrivate* priv;
8041 }
8042 
8043 struct GTcpConnectionClass
8044 {
8045 	GSocketConnectionClass parentClass;
8046 }
8047 
8048 struct GTcpConnectionPrivate;
8049 
8050 struct GTcpWrapperConnection
8051 {
8052 	GTcpConnection parentInstance;
8053 	GTcpWrapperConnectionPrivate* priv;
8054 }
8055 
8056 struct GTcpWrapperConnectionClass
8057 {
8058 	GTcpConnectionClass parentClass;
8059 }
8060 
8061 struct GTcpWrapperConnectionPrivate;
8062 
8063 struct GTestDBus;
8064 
8065 struct GThemedIcon;
8066 
8067 struct GThemedIconClass;
8068 
8069 struct GThreadedSocketService
8070 {
8071 	GSocketService parentInstance;
8072 	GThreadedSocketServicePrivate* priv;
8073 }
8074 
8075 struct GThreadedSocketServiceClass
8076 {
8077 	GSocketServiceClass parentClass;
8078 	/** */
8079 	extern(C) int function(GThreadedSocketService* service, GSocketConnection* connection, GObject* sourceObject) run;
8080 	/** */
8081 	extern(C) void function() GReserved1;
8082 	/** */
8083 	extern(C) void function() GReserved2;
8084 	/** */
8085 	extern(C) void function() GReserved3;
8086 	/** */
8087 	extern(C) void function() GReserved4;
8088 	/** */
8089 	extern(C) void function() GReserved5;
8090 }
8091 
8092 struct GThreadedSocketServicePrivate;
8093 
8094 struct GTlsBackend;
8095 
8096 /**
8097  * Provides an interface for describing TLS-related types.
8098  *
8099  * Since: 2.28
8100  */
8101 struct GTlsBackendInterface
8102 {
8103 	/**
8104 	 * The parent interface.
8105 	 */
8106 	GTypeInterface gIface;
8107 	/**
8108 	 *
8109 	 * Params:
8110 	 *     backend = the #GTlsBackend
8111 	 * Returns: whether or not TLS is supported
8112 	 */
8113 	extern(C) int function(GTlsBackend* backend) supportsTls;
8114 	/** */
8115 	extern(C) GType function() getCertificateType;
8116 	/** */
8117 	extern(C) GType function() getClientConnectionType;
8118 	/** */
8119 	extern(C) GType function() getServerConnectionType;
8120 	/** */
8121 	extern(C) GType function() getFileDatabaseType;
8122 	/**
8123 	 *
8124 	 * Params:
8125 	 *     backend = the #GTlsBackend
8126 	 * Returns: the default database, which should be
8127 	 *     unreffed when done.
8128 	 */
8129 	extern(C) GTlsDatabase* function(GTlsBackend* backend) getDefaultDatabase;
8130 	/**
8131 	 *
8132 	 * Params:
8133 	 *     backend = the #GTlsBackend
8134 	 * Returns: whether DTLS is supported
8135 	 */
8136 	extern(C) int function(GTlsBackend* backend) supportsDtls;
8137 	/** */
8138 	extern(C) GType function() getDtlsClientConnectionType;
8139 	/** */
8140 	extern(C) GType function() getDtlsServerConnectionType;
8141 }
8142 
8143 struct GTlsCertificate
8144 {
8145 	GObject parentInstance;
8146 	GTlsCertificatePrivate* priv;
8147 }
8148 
8149 struct GTlsCertificateClass
8150 {
8151 	GObjectClass parentClass;
8152 	/**
8153 	 *
8154 	 * Params:
8155 	 *     cert = a #GTlsCertificate
8156 	 *     identity = the expected peer identity
8157 	 *     trustedCa = the certificate of a trusted authority
8158 	 * Returns: the appropriate #GTlsCertificateFlags
8159 	 */
8160 	extern(C) GTlsCertificateFlags function(GTlsCertificate* cert, GSocketConnectable* identity, GTlsCertificate* trustedCa) verify;
8161 	void*[8] padding;
8162 }
8163 
8164 struct GTlsCertificatePrivate;
8165 
8166 struct GTlsClientConnection;
8167 
8168 /**
8169  * vtable for a #GTlsClientConnection implementation.
8170  *
8171  * Since: 2.26
8172  */
8173 struct GTlsClientConnectionInterface
8174 {
8175 	/**
8176 	 * The parent interface.
8177 	 */
8178 	GTypeInterface gIface;
8179 	/** */
8180 	extern(C) void function(GTlsClientConnection* conn, GTlsClientConnection* source) copySessionState;
8181 }
8182 
8183 struct GTlsConnection
8184 {
8185 	GIOStream parentInstance;
8186 	GTlsConnectionPrivate* priv;
8187 }
8188 
8189 struct GTlsConnectionClass
8190 {
8191 	GIOStreamClass parentClass;
8192 	/** */
8193 	extern(C) int function(GTlsConnection* connection, GTlsCertificate* peerCert, GTlsCertificateFlags errors) acceptCertificate;
8194 	/**
8195 	 *
8196 	 * Params:
8197 	 *     conn = a #GTlsConnection
8198 	 *     cancellable = a #GCancellable, or %NULL
8199 	 * Returns: success or failure
8200 	 *
8201 	 * Throws: GException on failure.
8202 	 */
8203 	extern(C) int function(GTlsConnection* conn, GCancellable* cancellable, GError** err) handshake;
8204 	/** */
8205 	extern(C) void function(GTlsConnection* conn, int ioPriority, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) handshakeAsync;
8206 	/**
8207 	 *
8208 	 * Params:
8209 	 *     conn = a #GTlsConnection
8210 	 *     result = a #GAsyncResult.
8211 	 * Returns: %TRUE on success, %FALSE on failure, in which
8212 	 *     case @error will be set.
8213 	 *
8214 	 * Throws: GException on failure.
8215 	 */
8216 	extern(C) int function(GTlsConnection* conn, GAsyncResult* result, GError** err) handshakeFinish;
8217 	void*[8] padding;
8218 }
8219 
8220 struct GTlsConnectionPrivate;
8221 
8222 struct GTlsDatabase
8223 {
8224 	GObject parentInstance;
8225 	GTlsDatabasePrivate* priv;
8226 }
8227 
8228 /**
8229  * The class for #GTlsDatabase. Derived classes should implement the various
8230  * virtual methods. _async and _finish methods have a default
8231  * implementation that runs the corresponding sync method in a thread.
8232  *
8233  * Since: 2.30
8234  */
8235 struct GTlsDatabaseClass
8236 {
8237 	GObjectClass parentClass;
8238 	/**
8239 	 *
8240 	 * Params:
8241 	 *     self = a #GTlsDatabase
8242 	 *     chain = a #GTlsCertificate chain
8243 	 *     purpose = the purpose that this certificate chain will be used for.
8244 	 *     identity = the expected peer identity
8245 	 *     interaction = used to interact with the user if necessary
8246 	 *     flags = additional verify flags
8247 	 *     cancellable = a #GCancellable, or %NULL
8248 	 * Returns: the appropriate #GTlsCertificateFlags which represents the
8249 	 *     result of verification.
8250 	 *
8251 	 * Throws: GException on failure.
8252 	 */
8253 	extern(C) GTlsCertificateFlags function(GTlsDatabase* self, GTlsCertificate* chain, const(char)* purpose, GSocketConnectable* identity, GTlsInteraction* interaction, GTlsDatabaseVerifyFlags flags, GCancellable* cancellable, GError** err) verifyChain;
8254 	/** */
8255 	extern(C) void function(GTlsDatabase* self, GTlsCertificate* chain, const(char)* purpose, GSocketConnectable* identity, GTlsInteraction* interaction, GTlsDatabaseVerifyFlags flags, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) verifyChainAsync;
8256 	/**
8257 	 *
8258 	 * Params:
8259 	 *     self = a #GTlsDatabase
8260 	 *     result = a #GAsyncResult.
8261 	 * Returns: the appropriate #GTlsCertificateFlags which represents the
8262 	 *     result of verification.
8263 	 *
8264 	 * Throws: GException on failure.
8265 	 */
8266 	extern(C) GTlsCertificateFlags function(GTlsDatabase* self, GAsyncResult* result, GError** err) verifyChainFinish;
8267 	/**
8268 	 *
8269 	 * Params:
8270 	 *     self = a #GTlsDatabase
8271 	 *     certificate = certificate for which to create a handle.
8272 	 * Returns: a newly allocated string containing the
8273 	 *     handle.
8274 	 */
8275 	extern(C) char* function(GTlsDatabase* self, GTlsCertificate* certificate) createCertificateHandle;
8276 	/**
8277 	 *
8278 	 * Params:
8279 	 *     self = a #GTlsDatabase
8280 	 *     handle = a certificate handle
8281 	 *     interaction = used to interact with the user if necessary
8282 	 *     flags = Flags which affect the lookup.
8283 	 *     cancellable = a #GCancellable, or %NULL
8284 	 * Returns: a newly allocated
8285 	 *     #GTlsCertificate, or %NULL. Use g_object_unref() to release the certificate.
8286 	 *
8287 	 * Throws: GException on failure.
8288 	 */
8289 	extern(C) GTlsCertificate* function(GTlsDatabase* self, const(char)* handle, GTlsInteraction* interaction, GTlsDatabaseLookupFlags flags, GCancellable* cancellable, GError** err) lookupCertificateForHandle;
8290 	/** */
8291 	extern(C) void function(GTlsDatabase* self, const(char)* handle, GTlsInteraction* interaction, GTlsDatabaseLookupFlags flags, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) lookupCertificateForHandleAsync;
8292 	/**
8293 	 *
8294 	 * Params:
8295 	 *     self = a #GTlsDatabase
8296 	 *     result = a #GAsyncResult.
8297 	 * Returns: a newly allocated #GTlsCertificate object.
8298 	 *     Use g_object_unref() to release the certificate.
8299 	 *
8300 	 * Throws: GException on failure.
8301 	 */
8302 	extern(C) GTlsCertificate* function(GTlsDatabase* self, GAsyncResult* result, GError** err) lookupCertificateForHandleFinish;
8303 	/**
8304 	 *
8305 	 * Params:
8306 	 *     self = a #GTlsDatabase
8307 	 *     certificate = a #GTlsCertificate
8308 	 *     interaction = used to interact with the user if necessary
8309 	 *     flags = flags which affect the lookup operation
8310 	 *     cancellable = a #GCancellable, or %NULL
8311 	 * Returns: a newly allocated issuer #GTlsCertificate,
8312 	 *     or %NULL. Use g_object_unref() to release the certificate.
8313 	 *
8314 	 * Throws: GException on failure.
8315 	 */
8316 	extern(C) GTlsCertificate* function(GTlsDatabase* self, GTlsCertificate* certificate, GTlsInteraction* interaction, GTlsDatabaseLookupFlags flags, GCancellable* cancellable, GError** err) lookupCertificateIssuer;
8317 	/** */
8318 	extern(C) void function(GTlsDatabase* self, GTlsCertificate* certificate, GTlsInteraction* interaction, GTlsDatabaseLookupFlags flags, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) lookupCertificateIssuerAsync;
8319 	/**
8320 	 *
8321 	 * Params:
8322 	 *     self = a #GTlsDatabase
8323 	 *     result = a #GAsyncResult.
8324 	 * Returns: a newly allocated issuer #GTlsCertificate,
8325 	 *     or %NULL. Use g_object_unref() to release the certificate.
8326 	 *
8327 	 * Throws: GException on failure.
8328 	 */
8329 	extern(C) GTlsCertificate* function(GTlsDatabase* self, GAsyncResult* result, GError** err) lookupCertificateIssuerFinish;
8330 	/**
8331 	 *
8332 	 * Params:
8333 	 *     self = a #GTlsDatabase
8334 	 *     issuerRawDn = a #GByteArray which holds the DER encoded issuer DN.
8335 	 *     interaction = used to interact with the user if necessary
8336 	 *     flags = Flags which affect the lookup operation.
8337 	 *     cancellable = a #GCancellable, or %NULL
8338 	 * Returns: a newly allocated list of #GTlsCertificate
8339 	 *     objects. Use g_object_unref() on each certificate, and g_list_free() on the release the list.
8340 	 *
8341 	 * Throws: GException on failure.
8342 	 */
8343 	extern(C) GList* function(GTlsDatabase* self, GByteArray* issuerRawDn, GTlsInteraction* interaction, GTlsDatabaseLookupFlags flags, GCancellable* cancellable, GError** err) lookupCertificatesIssuedBy;
8344 	/** */
8345 	extern(C) void function(GTlsDatabase* self, GByteArray* issuerRawDn, GTlsInteraction* interaction, GTlsDatabaseLookupFlags flags, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) lookupCertificatesIssuedByAsync;
8346 	/**
8347 	 *
8348 	 * Params:
8349 	 *     self = a #GTlsDatabase
8350 	 *     result = a #GAsyncResult.
8351 	 * Returns: a newly allocated list of #GTlsCertificate
8352 	 *     objects. Use g_object_unref() on each certificate, and g_list_free() on the release the list.
8353 	 *
8354 	 * Throws: GException on failure.
8355 	 */
8356 	extern(C) GList* function(GTlsDatabase* self, GAsyncResult* result, GError** err) lookupCertificatesIssuedByFinish;
8357 	void*[16] padding;
8358 }
8359 
8360 struct GTlsDatabasePrivate;
8361 
8362 struct GTlsFileDatabase;
8363 
8364 /**
8365  * Provides an interface for #GTlsFileDatabase implementations.
8366  */
8367 struct GTlsFileDatabaseInterface
8368 {
8369 	/**
8370 	 * The parent interface.
8371 	 */
8372 	GTypeInterface gIface;
8373 	void*[8] padding;
8374 }
8375 
8376 struct GTlsInteraction
8377 {
8378 	GObject parentInstance;
8379 	GTlsInteractionPrivate* priv;
8380 }
8381 
8382 /**
8383  * The class for #GTlsInteraction. Derived classes implement the various
8384  * virtual interaction methods to handle TLS interactions.
8385  *
8386  * Derived classes can choose to implement whichever interactions methods they'd
8387  * like to support by overriding those virtual methods in their class
8388  * initialization function. If a derived class implements an async method,
8389  * it must also implement the corresponding finish method.
8390  *
8391  * The synchronous interaction methods should implement to display modal dialogs,
8392  * and the asynchronous methods to display modeless dialogs.
8393  *
8394  * If the user cancels an interaction, then the result should be
8395  * %G_TLS_INTERACTION_FAILED and the error should be set with a domain of
8396  * %G_IO_ERROR and code of %G_IO_ERROR_CANCELLED.
8397  *
8398  * Since: 2.30
8399  */
8400 struct GTlsInteractionClass
8401 {
8402 	GObjectClass parentClass;
8403 	/**
8404 	 *
8405 	 * Params:
8406 	 *     interaction = a #GTlsInteraction object
8407 	 *     password = a #GTlsPassword object
8408 	 *     cancellable = an optional #GCancellable cancellation object
8409 	 * Returns: The status of the ask password interaction.
8410 	 *
8411 	 * Throws: GException on failure.
8412 	 */
8413 	extern(C) GTlsInteractionResult function(GTlsInteraction* interaction, GTlsPassword* password, GCancellable* cancellable, GError** err) askPassword;
8414 	/** */
8415 	extern(C) void function(GTlsInteraction* interaction, GTlsPassword* password, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) askPasswordAsync;
8416 	/**
8417 	 *
8418 	 * Params:
8419 	 *     interaction = a #GTlsInteraction object
8420 	 *     result = the result passed to the callback
8421 	 * Returns: The status of the ask password interaction.
8422 	 *
8423 	 * Throws: GException on failure.
8424 	 */
8425 	extern(C) GTlsInteractionResult function(GTlsInteraction* interaction, GAsyncResult* result, GError** err) askPasswordFinish;
8426 	/**
8427 	 *
8428 	 * Params:
8429 	 *     interaction = a #GTlsInteraction object
8430 	 *     connection = a #GTlsConnection object
8431 	 *     flags = flags providing more information about the request
8432 	 *     cancellable = an optional #GCancellable cancellation object
8433 	 * Returns: The status of the request certificate interaction.
8434 	 *
8435 	 * Throws: GException on failure.
8436 	 */
8437 	extern(C) GTlsInteractionResult function(GTlsInteraction* interaction, GTlsConnection* connection, GTlsCertificateRequestFlags flags, GCancellable* cancellable, GError** err) requestCertificate;
8438 	/** */
8439 	extern(C) void function(GTlsInteraction* interaction, GTlsConnection* connection, GTlsCertificateRequestFlags flags, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) requestCertificateAsync;
8440 	/**
8441 	 *
8442 	 * Params:
8443 	 *     interaction = a #GTlsInteraction object
8444 	 *     result = the result passed to the callback
8445 	 * Returns: The status of the request certificate interaction.
8446 	 *
8447 	 * Throws: GException on failure.
8448 	 */
8449 	extern(C) GTlsInteractionResult function(GTlsInteraction* interaction, GAsyncResult* result, GError** err) requestCertificateFinish;
8450 	void*[21] padding;
8451 }
8452 
8453 struct GTlsInteractionPrivate;
8454 
8455 struct GTlsPassword
8456 {
8457 	GObject parentInstance;
8458 	GTlsPasswordPrivate* priv;
8459 }
8460 
8461 /**
8462  * Class structure for #GTlsPassword.
8463  */
8464 struct GTlsPasswordClass
8465 {
8466 	GObjectClass parentClass;
8467 	/**
8468 	 *
8469 	 * Params:
8470 	 *     password = a #GTlsPassword object
8471 	 *     length = location to place the length of the password.
8472 	 * Returns: The password value (owned by the password object).
8473 	 */
8474 	extern(C) char* function(GTlsPassword* password, size_t* length) getValue;
8475 	/** */
8476 	extern(C) void function(GTlsPassword* password, char* value, ptrdiff_t length, GDestroyNotify destroy) setValue;
8477 	/** */
8478 	extern(C) const(char)* function(GTlsPassword* password) getDefaultWarning;
8479 	void*[4] padding;
8480 }
8481 
8482 struct GTlsPasswordPrivate;
8483 
8484 struct GTlsServerConnection;
8485 
8486 /**
8487  * vtable for a #GTlsServerConnection implementation.
8488  *
8489  * Since: 2.26
8490  */
8491 struct GTlsServerConnectionInterface
8492 {
8493 	/**
8494 	 * The parent interface.
8495 	 */
8496 	GTypeInterface gIface;
8497 }
8498 
8499 struct GUnixConnection
8500 {
8501 	GSocketConnection parentInstance;
8502 	GUnixConnectionPrivate* priv;
8503 }
8504 
8505 struct GUnixConnectionClass
8506 {
8507 	GSocketConnectionClass parentClass;
8508 }
8509 
8510 struct GUnixConnectionPrivate;
8511 
8512 struct GUnixCredentialsMessage
8513 {
8514 	GSocketControlMessage parentInstance;
8515 	GUnixCredentialsMessagePrivate* priv;
8516 }
8517 
8518 /**
8519  * Class structure for #GUnixCredentialsMessage.
8520  *
8521  * Since: 2.26
8522  */
8523 struct GUnixCredentialsMessageClass
8524 {
8525 	GSocketControlMessageClass parentClass;
8526 	/** */
8527 	extern(C) void function() GReserved1;
8528 	/** */
8529 	extern(C) void function() GReserved2;
8530 }
8531 
8532 struct GUnixCredentialsMessagePrivate;
8533 
8534 struct GUnixFDList
8535 {
8536 	GObject parentInstance;
8537 	GUnixFDListPrivate* priv;
8538 }
8539 
8540 struct GUnixFDListClass
8541 {
8542 	GObjectClass parentClass;
8543 	/** */
8544 	extern(C) void function() GReserved1;
8545 	/** */
8546 	extern(C) void function() GReserved2;
8547 	/** */
8548 	extern(C) void function() GReserved3;
8549 	/** */
8550 	extern(C) void function() GReserved4;
8551 	/** */
8552 	extern(C) void function() GReserved5;
8553 }
8554 
8555 struct GUnixFDListPrivate;
8556 
8557 struct GUnixFDMessage
8558 {
8559 	GSocketControlMessage parentInstance;
8560 	GUnixFDMessagePrivate* priv;
8561 }
8562 
8563 struct GUnixFDMessageClass
8564 {
8565 	GSocketControlMessageClass parentClass;
8566 	/** */
8567 	extern(C) void function() GReserved1;
8568 	/** */
8569 	extern(C) void function() GReserved2;
8570 }
8571 
8572 struct GUnixFDMessagePrivate;
8573 
8574 struct GUnixInputStream
8575 {
8576 	GInputStream parentInstance;
8577 	GUnixInputStreamPrivate* priv;
8578 }
8579 
8580 struct GUnixInputStreamClass
8581 {
8582 	GInputStreamClass parentClass;
8583 	/** */
8584 	extern(C) void function() GReserved1;
8585 	/** */
8586 	extern(C) void function() GReserved2;
8587 	/** */
8588 	extern(C) void function() GReserved3;
8589 	/** */
8590 	extern(C) void function() GReserved4;
8591 	/** */
8592 	extern(C) void function() GReserved5;
8593 }
8594 
8595 struct GUnixInputStreamPrivate;
8596 
8597 /**
8598  * Defines a Unix mount entry (e.g. <filename>/media/cdrom</filename>).
8599  * This corresponds roughly to a mtab entry.
8600  */
8601 struct GUnixMountEntry;
8602 
8603 struct GUnixMountMonitor;
8604 
8605 struct GUnixMountMonitorClass;
8606 
8607 struct GUnixMountPoint;
8608 
8609 struct GUnixOutputStream
8610 {
8611 	GOutputStream parentInstance;
8612 	GUnixOutputStreamPrivate* priv;
8613 }
8614 
8615 struct GUnixOutputStreamClass
8616 {
8617 	GOutputStreamClass parentClass;
8618 	/** */
8619 	extern(C) void function() GReserved1;
8620 	/** */
8621 	extern(C) void function() GReserved2;
8622 	/** */
8623 	extern(C) void function() GReserved3;
8624 	/** */
8625 	extern(C) void function() GReserved4;
8626 	/** */
8627 	extern(C) void function() GReserved5;
8628 }
8629 
8630 struct GUnixOutputStreamPrivate;
8631 
8632 struct GUnixSocketAddress
8633 {
8634 	GSocketAddress parentInstance;
8635 	GUnixSocketAddressPrivate* priv;
8636 }
8637 
8638 struct GUnixSocketAddressClass
8639 {
8640 	GSocketAddressClass parentClass;
8641 }
8642 
8643 struct GUnixSocketAddressPrivate;
8644 
8645 struct GVfs
8646 {
8647 	GObject parentInstance;
8648 }
8649 
8650 struct GVfsClass
8651 {
8652 	GObjectClass parentClass;
8653 	/**
8654 	 *
8655 	 * Params:
8656 	 *     vfs = a #GVfs.
8657 	 * Returns: %TRUE if construction of the @vfs was successful
8658 	 *     and it is now active.
8659 	 */
8660 	extern(C) int function(GVfs* vfs) isActive;
8661 	/**
8662 	 *
8663 	 * Params:
8664 	 *     vfs = a #GVfs.
8665 	 *     path = a string containing a VFS path.
8666 	 * Returns: a #GFile.
8667 	 *     Free the returned object with g_object_unref().
8668 	 */
8669 	extern(C) GFile* function(GVfs* vfs, const(char)* path) getFileForPath;
8670 	/**
8671 	 *
8672 	 * Params:
8673 	 *     vfs = a#GVfs.
8674 	 *     uri = a string containing a URI
8675 	 * Returns: a #GFile.
8676 	 *     Free the returned object with g_object_unref().
8677 	 */
8678 	extern(C) GFile* function(GVfs* vfs, const(char)* uri) getFileForUri;
8679 	/**
8680 	 *
8681 	 * Params:
8682 	 *     vfs = a #GVfs.
8683 	 * Returns: a %NULL-terminated array of strings.
8684 	 *     The returned array belongs to GIO and must
8685 	 *     not be freed or modified.
8686 	 */
8687 	extern(C) char** function(GVfs* vfs) getSupportedUriSchemes;
8688 	/**
8689 	 *
8690 	 * Params:
8691 	 *     vfs = a #GVfs.
8692 	 *     parseName = a string to be parsed by the VFS module.
8693 	 * Returns: a #GFile for the given @parse_name.
8694 	 *     Free the returned object with g_object_unref().
8695 	 */
8696 	extern(C) GFile* function(GVfs* vfs, const(char)* parseName) parseName;
8697 	/** */
8698 	extern(C) void function(GVfs* vfs, const(char)* filename, ulong device, GFileAttributeMatcher* attributeMatcher, GFileInfo* info, GCancellable* cancellable, void** extraData, GDestroyNotify* freeExtraData) localFileAddInfo;
8699 	/** */
8700 	extern(C) void function(GVfs* vfs, GFileAttributeInfoList* list) addWritableNamespaces;
8701 	/** */
8702 	extern(C) int function(GVfs* vfs, const(char)* filename, GFileInfo* info, GFileQueryInfoFlags flags, GCancellable* cancellable, GError** err) localFileSetAttributes;
8703 	/** */
8704 	extern(C) void function(GVfs* vfs, const(char)* filename) localFileRemoved;
8705 	/** */
8706 	extern(C) void function(GVfs* vfs, const(char)* source, const(char)* dest) localFileMoved;
8707 	/** */
8708 	extern(C) GIcon* function(GVfs* vfs, GVariant* value) deserializeIcon;
8709 	/** */
8710 	extern(C) void function() GReserved1;
8711 	/** */
8712 	extern(C) void function() GReserved2;
8713 	/** */
8714 	extern(C) void function() GReserved3;
8715 	/** */
8716 	extern(C) void function() GReserved4;
8717 	/** */
8718 	extern(C) void function() GReserved5;
8719 	/** */
8720 	extern(C) void function() GReserved6;
8721 }
8722 
8723 struct GVolume;
8724 
8725 /**
8726  * Interface for implementing operations for mountable volumes.
8727  */
8728 struct GVolumeIface
8729 {
8730 	/**
8731 	 * The parent interface.
8732 	 */
8733 	GTypeInterface gIface;
8734 	/** */
8735 	extern(C) void function(GVolume* volume) changed;
8736 	/** */
8737 	extern(C) void function(GVolume* volume) removed;
8738 	/**
8739 	 *
8740 	 * Params:
8741 	 *     volume = a #GVolume
8742 	 * Returns: the name for the given @volume. The returned string should
8743 	 *     be freed with g_free() when no longer needed.
8744 	 */
8745 	extern(C) char* function(GVolume* volume) getName;
8746 	/**
8747 	 *
8748 	 * Params:
8749 	 *     volume = a #GVolume
8750 	 * Returns: a #GIcon.
8751 	 *     The returned object should be unreffed with g_object_unref()
8752 	 *     when no longer needed.
8753 	 */
8754 	extern(C) GIcon* function(GVolume* volume) getIcon;
8755 	/**
8756 	 *
8757 	 * Params:
8758 	 *     volume = a #GVolume
8759 	 * Returns: the UUID for @volume or %NULL if no UUID
8760 	 *     can be computed.
8761 	 *     The returned string should be freed with g_free()
8762 	 *     when no longer needed.
8763 	 */
8764 	extern(C) char* function(GVolume* volume) getUuid;
8765 	/**
8766 	 *
8767 	 * Params:
8768 	 *     volume = a #GVolume
8769 	 * Returns: a #GDrive or %NULL if @volume is not
8770 	 *     associated with a drive. The returned object should be unreffed
8771 	 *     with g_object_unref() when no longer needed.
8772 	 */
8773 	extern(C) GDrive* function(GVolume* volume) getDrive;
8774 	/**
8775 	 *
8776 	 * Params:
8777 	 *     volume = a #GVolume
8778 	 * Returns: a #GMount or %NULL if @volume isn't mounted.
8779 	 *     The returned object should be unreffed with g_object_unref()
8780 	 *     when no longer needed.
8781 	 */
8782 	extern(C) GMount* function(GVolume* volume) getMount;
8783 	/**
8784 	 *
8785 	 * Params:
8786 	 *     volume = a #GVolume
8787 	 * Returns: %TRUE if the @volume can be mounted. %FALSE otherwise
8788 	 */
8789 	extern(C) int function(GVolume* volume) canMount;
8790 	/**
8791 	 *
8792 	 * Params:
8793 	 *     volume = a #GVolume
8794 	 * Returns: %TRUE if the @volume can be ejected. %FALSE otherwise
8795 	 */
8796 	extern(C) int function(GVolume* volume) canEject;
8797 	/** */
8798 	extern(C) void function(GVolume* volume, GMountMountFlags flags, GMountOperation* mountOperation, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) mountFn;
8799 	/**
8800 	 *
8801 	 * Params:
8802 	 *     volume = a #GVolume
8803 	 *     result = a #GAsyncResult
8804 	 * Returns: %TRUE, %FALSE if operation failed
8805 	 *
8806 	 * Throws: GException on failure.
8807 	 */
8808 	extern(C) int function(GVolume* volume, GAsyncResult* result, GError** err) mountFinish;
8809 	/** */
8810 	extern(C) void function(GVolume* volume, GMountUnmountFlags flags, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) eject;
8811 	/**
8812 	 *
8813 	 * Params:
8814 	 *     volume = pointer to a #GVolume
8815 	 *     result = a #GAsyncResult
8816 	 * Returns: %TRUE, %FALSE if operation failed
8817 	 *
8818 	 * Throws: GException on failure.
8819 	 */
8820 	extern(C) int function(GVolume* volume, GAsyncResult* result, GError** err) ejectFinish;
8821 	/**
8822 	 *
8823 	 * Params:
8824 	 *     volume = a #GVolume
8825 	 *     kind = the kind of identifier to return
8826 	 * Returns: a newly allocated string containing the
8827 	 *     requested identifier, or %NULL if the #GVolume
8828 	 *     doesn't have this kind of identifier
8829 	 */
8830 	extern(C) char* function(GVolume* volume, const(char)* kind) getIdentifier;
8831 	/**
8832 	 *
8833 	 * Params:
8834 	 *     volume = a #GVolume
8835 	 * Returns: a %NULL-terminated array
8836 	 *     of strings containing kinds of identifiers. Use g_strfreev() to free.
8837 	 */
8838 	extern(C) char** function(GVolume* volume) enumerateIdentifiers;
8839 	/**
8840 	 *
8841 	 * Params:
8842 	 *     volume = a #GVolume
8843 	 * Returns: %TRUE if the volume should be automatically mounted
8844 	 */
8845 	extern(C) int function(GVolume* volume) shouldAutomount;
8846 	/**
8847 	 *
8848 	 * Params:
8849 	 *     volume = a #GVolume
8850 	 * Returns: the activation root of @volume
8851 	 *     or %NULL. Use g_object_unref() to free.
8852 	 */
8853 	extern(C) GFile* function(GVolume* volume) getActivationRoot;
8854 	/** */
8855 	extern(C) void function(GVolume* volume, GMountUnmountFlags flags, GMountOperation* mountOperation, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) ejectWithOperation;
8856 	/**
8857 	 *
8858 	 * Params:
8859 	 *     volume = a #GVolume
8860 	 *     result = a #GAsyncResult
8861 	 * Returns: %TRUE if the volume was successfully ejected. %FALSE otherwise
8862 	 *
8863 	 * Throws: GException on failure.
8864 	 */
8865 	extern(C) int function(GVolume* volume, GAsyncResult* result, GError** err) ejectWithOperationFinish;
8866 	/**
8867 	 *
8868 	 * Params:
8869 	 *     volume = a #GVolume
8870 	 * Returns: Sorting key for @volume or %NULL if no such key is available
8871 	 */
8872 	extern(C) const(char)* function(GVolume* volume) getSortKey;
8873 	/**
8874 	 *
8875 	 * Params:
8876 	 *     volume = a #GVolume
8877 	 * Returns: a #GIcon.
8878 	 *     The returned object should be unreffed with g_object_unref()
8879 	 *     when no longer needed.
8880 	 */
8881 	extern(C) GIcon* function(GVolume* volume) getSymbolicIcon;
8882 }
8883 
8884 struct GVolumeMonitor
8885 {
8886 	GObject parentInstance;
8887 	void* priv;
8888 }
8889 
8890 struct GVolumeMonitorClass
8891 {
8892 	GObjectClass parentClass;
8893 	/** */
8894 	extern(C) void function(GVolumeMonitor* volumeMonitor, GVolume* volume) volumeAdded;
8895 	/** */
8896 	extern(C) void function(GVolumeMonitor* volumeMonitor, GVolume* volume) volumeRemoved;
8897 	/** */
8898 	extern(C) void function(GVolumeMonitor* volumeMonitor, GVolume* volume) volumeChanged;
8899 	/** */
8900 	extern(C) void function(GVolumeMonitor* volumeMonitor, GMount* mount) mountAdded;
8901 	/** */
8902 	extern(C) void function(GVolumeMonitor* volumeMonitor, GMount* mount) mountRemoved;
8903 	/** */
8904 	extern(C) void function(GVolumeMonitor* volumeMonitor, GMount* mount) mountPreUnmount;
8905 	/** */
8906 	extern(C) void function(GVolumeMonitor* volumeMonitor, GMount* mount) mountChanged;
8907 	/** */
8908 	extern(C) void function(GVolumeMonitor* volumeMonitor, GDrive* drive) driveConnected;
8909 	/** */
8910 	extern(C) void function(GVolumeMonitor* volumeMonitor, GDrive* drive) driveDisconnected;
8911 	/** */
8912 	extern(C) void function(GVolumeMonitor* volumeMonitor, GDrive* drive) driveChanged;
8913 	/** */
8914 	extern(C) int function() isSupported;
8915 	/**
8916 	 *
8917 	 * Params:
8918 	 *     volumeMonitor = a #GVolumeMonitor.
8919 	 * Returns: a #GList of connected #GDrive objects.
8920 	 */
8921 	extern(C) GList* function(GVolumeMonitor* volumeMonitor) getConnectedDrives;
8922 	/**
8923 	 *
8924 	 * Params:
8925 	 *     volumeMonitor = a #GVolumeMonitor.
8926 	 * Returns: a #GList of #GVolume objects.
8927 	 */
8928 	extern(C) GList* function(GVolumeMonitor* volumeMonitor) getVolumes;
8929 	/**
8930 	 *
8931 	 * Params:
8932 	 *     volumeMonitor = a #GVolumeMonitor.
8933 	 * Returns: a #GList of #GMount objects.
8934 	 */
8935 	extern(C) GList* function(GVolumeMonitor* volumeMonitor) getMounts;
8936 	/**
8937 	 *
8938 	 * Params:
8939 	 *     volumeMonitor = a #GVolumeMonitor.
8940 	 *     uuid = the UUID to look for
8941 	 * Returns: a #GVolume or %NULL if no such volume is available.
8942 	 *     Free the returned object with g_object_unref().
8943 	 */
8944 	extern(C) GVolume* function(GVolumeMonitor* volumeMonitor, const(char)* uuid) getVolumeForUuid;
8945 	/**
8946 	 *
8947 	 * Params:
8948 	 *     volumeMonitor = a #GVolumeMonitor.
8949 	 *     uuid = the UUID to look for
8950 	 * Returns: a #GMount or %NULL if no such mount is available.
8951 	 *     Free the returned object with g_object_unref().
8952 	 */
8953 	extern(C) GMount* function(GVolumeMonitor* volumeMonitor, const(char)* uuid) getMountForUuid;
8954 	/** */
8955 	extern(C) GVolume* function(GMount* mount, GVolumeMonitor* volumeMonitor) adoptOrphanMount;
8956 	/** */
8957 	extern(C) void function(GVolumeMonitor* volumeMonitor, GDrive* drive) driveEjectButton;
8958 	/** */
8959 	extern(C) void function(GVolumeMonitor* volumeMonitor, GDrive* drive) driveStopButton;
8960 	/** */
8961 	extern(C) void function() GReserved1;
8962 	/** */
8963 	extern(C) void function() GReserved2;
8964 	/** */
8965 	extern(C) void function() GReserved3;
8966 	/** */
8967 	extern(C) void function() GReserved4;
8968 	/** */
8969 	extern(C) void function() GReserved5;
8970 	/** */
8971 	extern(C) void function() GReserved6;
8972 }
8973 
8974 struct GZlibCompressor;
8975 
8976 struct GZlibCompressorClass
8977 {
8978 	GObjectClass parentClass;
8979 }
8980 
8981 struct GZlibDecompressor;
8982 
8983 struct GZlibDecompressorClass
8984 {
8985 	GObjectClass parentClass;
8986 }
8987 
8988 /**
8989  * Type definition for a function that will be called back when an asynchronous
8990  * operation within GIO has been completed. #GAsyncReadyCallback
8991  * callbacks from #GTask are guaranteed to be invoked in a later
8992  * iteration of the
8993  * [thread-default main context][g-main-context-push-thread-default]
8994  * where the #GTask was created. All other users of
8995  * #GAsyncReadyCallback must likewise call it asynchronously in a
8996  * later iteration of the main context.
8997  *
8998  * Params:
8999  *     sourceObject = the object the asynchronous operation was started with.
9000  *     res = a #GAsyncResult.
9001  *     userData = user data passed to the callback.
9002  */
9003 public alias extern(C) void function(GObject* sourceObject, GAsyncResult* res, void* userData) GAsyncReadyCallback;
9004 
9005 /**
9006  * Invoked when a connection to a message bus has been obtained.
9007  *
9008  * Params:
9009  *     connection = The #GDBusConnection to a message bus.
9010  *     name = The name that is requested to be owned.
9011  *     userData = User data passed to g_bus_own_name().
9012  *
9013  * Since: 2.26
9014  */
9015 public alias extern(C) void function(GDBusConnection* connection, const(char)* name, void* userData) GBusAcquiredCallback;
9016 
9017 /**
9018  * Invoked when the name is acquired.
9019  *
9020  * Params:
9021  *     connection = The #GDBusConnection on which to acquired the name.
9022  *     name = The name being owned.
9023  *     userData = User data passed to g_bus_own_name() or g_bus_own_name_on_connection().
9024  *
9025  * Since: 2.26
9026  */
9027 public alias extern(C) void function(GDBusConnection* connection, const(char)* name, void* userData) GBusNameAcquiredCallback;
9028 
9029 /**
9030  * Invoked when the name being watched is known to have to have an owner.
9031  *
9032  * Params:
9033  *     connection = The #GDBusConnection the name is being watched on.
9034  *     name = The name being watched.
9035  *     nameOwner = Unique name of the owner of the name being watched.
9036  *     userData = User data passed to g_bus_watch_name().
9037  *
9038  * Since: 2.26
9039  */
9040 public alias extern(C) void function(GDBusConnection* connection, const(char)* name, const(char)* nameOwner, void* userData) GBusNameAppearedCallback;
9041 
9042 /**
9043  * Invoked when the name is lost or @connection has been closed.
9044  *
9045  * Params:
9046  *     connection = The #GDBusConnection on which to acquire the name or %NULL if
9047  *         the connection was disconnected.
9048  *     name = The name being owned.
9049  *     userData = User data passed to g_bus_own_name() or g_bus_own_name_on_connection().
9050  *
9051  * Since: 2.26
9052  */
9053 public alias extern(C) void function(GDBusConnection* connection, const(char)* name, void* userData) GBusNameLostCallback;
9054 
9055 /**
9056  * Invoked when the name being watched is known not to have to have an owner.
9057  *
9058  * This is also invoked when the #GDBusConnection on which the watch was
9059  * established has been closed.  In that case, @connection will be
9060  * %NULL.
9061  *
9062  * Params:
9063  *     connection = The #GDBusConnection the name is being watched on, or
9064  *         %NULL.
9065  *     name = The name being watched.
9066  *     userData = User data passed to g_bus_watch_name().
9067  *
9068  * Since: 2.26
9069  */
9070 public alias extern(C) void function(GDBusConnection* connection, const(char)* name, void* userData) GBusNameVanishedCallback;
9071 
9072 /**
9073  * This is the function type of the callback used for the #GSource
9074  * returned by g_cancellable_source_new().
9075  *
9076  * Params:
9077  *     cancellable = the #GCancellable
9078  *     userData = data passed in by the user.
9079  *
9080  * Returns: it should return %FALSE if the source should be removed.
9081  *
9082  * Since: 2.28
9083  */
9084 public alias extern(C) int function(GCancellable* cancellable, void* userData) GCancellableSourceFunc;
9085 
9086 /**
9087  * The type of the @get_property function in #GDBusInterfaceVTable.
9088  *
9089  * Params:
9090  *     connection = A #GDBusConnection.
9091  *     sender = The unique bus name of the remote caller.
9092  *     objectPath = The object path that the method was invoked on.
9093  *     interfaceName = The D-Bus interface name for the property.
9094  *     propertyName = The name of the property to get the value of.
9095  *     error = Return location for error.
9096  *     userData = The @user_data #gpointer passed to g_dbus_connection_register_object().
9097  *
9098  * Returns: A #GVariant with the value for @property_name or %NULL if
9099  *     @error is set. If the returned #GVariant is floating, it is
9100  *     consumed - otherwise its reference count is decreased by one.
9101  *
9102  * Since: 2.26
9103  */
9104 public alias extern(C) GVariant* function(GDBusConnection* connection, const(char)* sender, const(char)* objectPath, const(char)* interfaceName, const(char)* propertyName, GError** error, void* userData) GDBusInterfaceGetPropertyFunc;
9105 
9106 /**
9107  * The type of the @method_call function in #GDBusInterfaceVTable.
9108  *
9109  * Params:
9110  *     connection = A #GDBusConnection.
9111  *     sender = The unique bus name of the remote caller.
9112  *     objectPath = The object path that the method was invoked on.
9113  *     interfaceName = The D-Bus interface name the method was invoked on.
9114  *     methodName = The name of the method that was invoked.
9115  *     parameters = A #GVariant tuple with parameters.
9116  *     invocation = A #GDBusMethodInvocation object that must be used to return a value or error.
9117  *     userData = The @user_data #gpointer passed to g_dbus_connection_register_object().
9118  *
9119  * Since: 2.26
9120  */
9121 public alias extern(C) void function(GDBusConnection* connection, const(char)* sender, const(char)* objectPath, const(char)* interfaceName, const(char)* methodName, GVariant* parameters, GDBusMethodInvocation* invocation, void* userData) GDBusInterfaceMethodCallFunc;
9122 
9123 /**
9124  * The type of the @set_property function in #GDBusInterfaceVTable.
9125  *
9126  * Params:
9127  *     connection = A #GDBusConnection.
9128  *     sender = The unique bus name of the remote caller.
9129  *     objectPath = The object path that the method was invoked on.
9130  *     interfaceName = The D-Bus interface name for the property.
9131  *     propertyName = The name of the property to get the value of.
9132  *     value = The value to set the property to.
9133  *     error = Return location for error.
9134  *     userData = The @user_data #gpointer passed to g_dbus_connection_register_object().
9135  *
9136  * Returns: %TRUE if the property was set to @value, %FALSE if @error is set.
9137  *
9138  * Since: 2.26
9139  */
9140 public alias extern(C) int function(GDBusConnection* connection, const(char)* sender, const(char)* objectPath, const(char)* interfaceName, const(char)* propertyName, GVariant* value, GError** error, void* userData) GDBusInterfaceSetPropertyFunc;
9141 
9142 /**
9143  * Signature for function used in g_dbus_connection_add_filter().
9144  *
9145  * A filter function is passed a #GDBusMessage and expected to return
9146  * a #GDBusMessage too. Passive filter functions that don't modify the
9147  * message can simply return the @message object:
9148  * |[
9149  * static GDBusMessage *
9150  * passive_filter (GDBusConnection *connection
9151  * GDBusMessage    *message,
9152  * gboolean         incoming,
9153  * gpointer         user_data)
9154  * {
9155  * // inspect @message
9156  * return message;
9157  * }
9158  * ]|
9159  * Filter functions that wants to drop a message can simply return %NULL:
9160  * |[
9161  * static GDBusMessage *
9162  * drop_filter (GDBusConnection *connection
9163  * GDBusMessage    *message,
9164  * gboolean         incoming,
9165  * gpointer         user_data)
9166  * {
9167  * if (should_drop_message)
9168  * {
9169  * g_object_unref (message);
9170  * message = NULL;
9171  * }
9172  * return message;
9173  * }
9174  * ]|
9175  * Finally, a filter function may modify a message by copying it:
9176  * |[
9177  * static GDBusMessage *
9178  * modifying_filter (GDBusConnection *connection
9179  * GDBusMessage    *message,
9180  * gboolean         incoming,
9181  * gpointer         user_data)
9182  * {
9183  * GDBusMessage *copy;
9184  * GError *error;
9185  *
9186  * error = NULL;
9187  * copy = g_dbus_message_copy (message, &error);
9188  * // handle @error being set
9189  * g_object_unref (message);
9190  *
9191  * // modify @copy
9192  *
9193  * return copy;
9194  * }
9195  * ]|
9196  * If the returned #GDBusMessage is different from @message and cannot
9197  * be sent on @connection (it could use features, such as file
9198  * descriptors, not compatible with @connection), then a warning is
9199  * logged to standard error. Applications can
9200  * check this ahead of time using g_dbus_message_to_blob() passing a
9201  * #GDBusCapabilityFlags value obtained from @connection.
9202  *
9203  * Params:
9204  *     connection = A #GDBusConnection.
9205  *     message = A locked #GDBusMessage that the filter function takes ownership of.
9206  *     incoming = %TRUE if it is a message received from the other peer, %FALSE if it is
9207  *         a message to be sent to the other peer.
9208  *     userData = User data passed when adding the filter.
9209  *
9210  * Returns: A #GDBusMessage that will be freed with
9211  *     g_object_unref() or %NULL to drop the message. Passive filter
9212  *     functions can simply return the passed @message object.
9213  *
9214  * Since: 2.26
9215  */
9216 public alias extern(C) GDBusMessage* function(GDBusConnection* connection, GDBusMessage* message, int incoming, void* userData) GDBusMessageFilterFunction;
9217 
9218 /**
9219  * Function signature for a function used to determine the #GType to
9220  * use for an interface proxy (if @interface_name is not %NULL) or
9221  * object proxy (if @interface_name is %NULL).
9222  *
9223  * This function is called in the
9224  * [thread-default main loop][g-main-context-push-thread-default]
9225  * that @manager was constructed in.
9226  *
9227  * Params:
9228  *     manager = A #GDBusObjectManagerClient.
9229  *     objectPath = The object path of the remote object.
9230  *     interfaceName = The interface name of the remote object or %NULL if a #GDBusObjectProxy #GType is requested.
9231  *     userData = User data.
9232  *
9233  * Returns: A #GType to use for the remote object. The returned type
9234  *     must be a #GDBusProxy or #GDBusObjectProxy -derived
9235  *     type.
9236  *
9237  * Since: 2.30
9238  */
9239 public alias extern(C) GType function(GDBusObjectManagerClient* manager, const(char)* objectPath, const(char)* interfaceName, void* userData) GDBusProxyTypeFunc;
9240 
9241 /**
9242  * Signature for callback function used in g_dbus_connection_signal_subscribe().
9243  *
9244  * Params:
9245  *     connection = A #GDBusConnection.
9246  *     senderName = The unique bus name of the sender of the signal.
9247  *     objectPath = The object path that the signal was emitted on.
9248  *     interfaceName = The name of the interface.
9249  *     signalName = The name of the signal.
9250  *     parameters = A #GVariant tuple with parameters for the signal.
9251  *     userData = User data passed when subscribing to the signal.
9252  *
9253  * Since: 2.26
9254  */
9255 public alias extern(C) void function(GDBusConnection* connection, const(char)* senderName, const(char)* objectPath, const(char)* interfaceName, const(char)* signalName, GVariant* parameters, void* userData) GDBusSignalCallback;
9256 
9257 /**
9258  * The type of the @dispatch function in #GDBusSubtreeVTable.
9259  *
9260  * Subtrees are flat.  @node, if non-%NULL, is always exactly one
9261  * segment of the object path (ie: it never contains a slash).
9262  *
9263  * Params:
9264  *     connection = A #GDBusConnection.
9265  *     sender = The unique bus name of the remote caller.
9266  *     objectPath = The object path that was registered with g_dbus_connection_register_subtree().
9267  *     interfaceName = The D-Bus interface name that the method call or property access is for.
9268  *     node = A node that is a child of @object_path (relative to @object_path) or %NULL for the root of the subtree.
9269  *     outUserData = Return location for user data to pass to functions in the returned #GDBusInterfaceVTable.
9270  *     userData = The @user_data #gpointer passed to g_dbus_connection_register_subtree().
9271  *
9272  * Returns: A #GDBusInterfaceVTable or %NULL if you don't want to handle the methods.
9273  *
9274  * Since: 2.26
9275  */
9276 public alias extern(C) GDBusInterfaceVTable* function(GDBusConnection* connection, const(char)* sender, const(char)* objectPath, const(char)* interfaceName, const(char)* node, void** outUserData, void* userData) GDBusSubtreeDispatchFunc;
9277 
9278 /**
9279  * The type of the @enumerate function in #GDBusSubtreeVTable.
9280  *
9281  * This function is called when generating introspection data and also
9282  * when preparing to dispatch incoming messages in the event that the
9283  * %G_DBUS_SUBTREE_FLAGS_DISPATCH_TO_UNENUMERATED_NODES flag is not
9284  * specified (ie: to verify that the object path is valid).
9285  *
9286  * Hierarchies are not supported; the items that you return should not
9287  * contain the '/' character.
9288  *
9289  * The return value will be freed with g_strfreev().
9290  *
9291  * Params:
9292  *     connection = A #GDBusConnection.
9293  *     sender = The unique bus name of the remote caller.
9294  *     objectPath = The object path that was registered with g_dbus_connection_register_subtree().
9295  *     userData = The @user_data #gpointer passed to g_dbus_connection_register_subtree().
9296  *
9297  * Returns: A newly allocated array of strings for node names that are children of @object_path.
9298  *
9299  * Since: 2.26
9300  */
9301 public alias extern(C) char** function(GDBusConnection* connection, const(char)* sender, const(char)* objectPath, void* userData) GDBusSubtreeEnumerateFunc;
9302 
9303 /**
9304  * The type of the @introspect function in #GDBusSubtreeVTable.
9305  *
9306  * Subtrees are flat.  @node, if non-%NULL, is always exactly one
9307  * segment of the object path (ie: it never contains a slash).
9308  *
9309  * This function should return %NULL to indicate that there is no object
9310  * at this node.
9311  *
9312  * If this function returns non-%NULL, the return value is expected to
9313  * be a %NULL-terminated array of pointers to #GDBusInterfaceInfo
9314  * structures describing the interfaces implemented by @node.  This
9315  * array will have g_dbus_interface_info_unref() called on each item
9316  * before being freed with g_free().
9317  *
9318  * The difference between returning %NULL and an array containing zero
9319  * items is that the standard DBus interfaces will returned to the
9320  * remote introspector in the empty array case, but not in the %NULL
9321  * case.
9322  *
9323  * Params:
9324  *     connection = A #GDBusConnection.
9325  *     sender = The unique bus name of the remote caller.
9326  *     objectPath = The object path that was registered with g_dbus_connection_register_subtree().
9327  *     node = A node that is a child of @object_path (relative to @object_path) or %NULL for the root of the subtree.
9328  *     userData = The @user_data #gpointer passed to g_dbus_connection_register_subtree().
9329  *
9330  * Returns: A %NULL-terminated array of pointers to #GDBusInterfaceInfo, or %NULL.
9331  *
9332  * Since: 2.26
9333  */
9334 public alias extern(C) GDBusInterfaceInfo** function(GDBusConnection* connection, const(char)* sender, const(char)* objectPath, const(char)* node, void* userData) GDBusSubtreeIntrospectFunc;
9335 
9336 /**
9337  * This is the function type of the callback used for the #GSource
9338  * returned by g_datagram_based_create_source().
9339  *
9340  * Params:
9341  *     datagramBased = the #GDatagramBased
9342  *     condition = the current condition at the source fired
9343  *     userData = data passed in by the user
9344  *
9345  * Returns: %G_SOURCE_REMOVE if the source should be removed,
9346  *     %G_SOURCE_CONTINUE otherwise
9347  *
9348  * Since: 2.48
9349  */
9350 public alias extern(C) int function(GDatagramBased* datagramBased, GIOCondition condition, void* userData) GDatagramBasedSourceFunc;
9351 
9352 /**
9353  * During invocation, g_desktop_app_info_launch_uris_as_manager() may
9354  * create one or more child processes.  This callback is invoked once
9355  * for each, providing the process ID.
9356  *
9357  * Params:
9358  *     appinfo = a #GDesktopAppInfo
9359  *     pid = Process identifier
9360  *     userData = User data
9361  */
9362 public alias extern(C) void function(GDesktopAppInfo* appinfo, GPid pid, void* userData) GDesktopAppLaunchCallback;
9363 
9364 /**
9365  * This callback type is used by g_file_measure_disk_usage() to make
9366  * periodic progress reports when measuring the amount of disk spaced
9367  * used by a directory.
9368  *
9369  * These calls are made on a best-effort basis and not all types of
9370  * #GFile will support them.  At the minimum, however, one call will
9371  * always be made immediately.
9372  *
9373  * In the case that there is no support, @reporting will be set to
9374  * %FALSE (and the other values undefined) and no further calls will be
9375  * made.  Otherwise, the @reporting will be %TRUE and the other values
9376  * all-zeros during the first (immediate) call.  In this way, you can
9377  * know which type of progress UI to show without a delay.
9378  *
9379  * For g_file_measure_disk_usage() the callback is made directly.  For
9380  * g_file_measure_disk_usage_async() the callback is made via the
9381  * default main context of the calling thread (ie: the same way that the
9382  * final async result would be reported).
9383  *
9384  * @current_size is in the same units as requested by the operation (see
9385  * %G_FILE_MEASURE_APPARENT_SIZE).
9386  *
9387  * The frequency of the updates is implementation defined, but is
9388  * ideally about once every 200ms.
9389  *
9390  * The last progress callback may or may not be equal to the final
9391  * result.  Always check the async result to get the final value.
9392  *
9393  * Params:
9394  *     reporting = %TRUE if more reports will come
9395  *     currentSize = the current cumulative size measurement
9396  *     numDirs = the number of directories visited so far
9397  *     numFiles = the number of non-directory files encountered
9398  *     userData = the data passed to the original request for this callback
9399  *
9400  * Since: 2.38
9401  */
9402 public alias extern(C) void function(int reporting, ulong currentSize, ulong numDirs, ulong numFiles, void* userData) GFileMeasureProgressCallback;
9403 
9404 /**
9405  * When doing file operations that may take a while, such as moving
9406  * a file or copying a file, a progress callback is used to pass how
9407  * far along that operation is to the application.
9408  *
9409  * Params:
9410  *     currentNumBytes = the current number of bytes in the operation.
9411  *     totalNumBytes = the total number of bytes in the operation.
9412  *     userData = user data passed to the callback.
9413  */
9414 public alias extern(C) void function(long currentNumBytes, long totalNumBytes, void* userData) GFileProgressCallback;
9415 
9416 /**
9417  * When loading the partial contents of a file with g_file_load_partial_contents_async(),
9418  * it may become necessary to determine if any more data from the file should be loaded.
9419  * A #GFileReadMoreCallback function facilitates this by returning %TRUE if more data
9420  * should be read, or %FALSE otherwise.
9421  *
9422  * Params:
9423  *     fileContents = the data as currently read.
9424  *     fileSize = the size of the data currently read.
9425  *     callbackData = data passed to the callback.
9426  *
9427  * Returns: %TRUE if more data should be read back. %FALSE otherwise.
9428  */
9429 public alias extern(C) int function(const(char)* fileContents, long fileSize, void* callbackData) GFileReadMoreCallback;
9430 
9431 /**
9432  * I/O Job function.
9433  *
9434  * Long-running jobs should periodically check the @cancellable
9435  * to see if they have been cancelled.
9436  *
9437  * Params:
9438  *     job = a #GIOSchedulerJob.
9439  *     cancellable = optional #GCancellable object, %NULL to ignore.
9440  *     userData = the data to pass to callback function
9441  *
9442  * Returns: %TRUE if this function should be called again to
9443  *     complete the job, %FALSE if the job is complete (or cancelled)
9444  */
9445 public alias extern(C) int function(GIOSchedulerJob* job, GCancellable* cancellable, void* userData) GIOSchedulerJobFunc;
9446 
9447 /**
9448  * This is the function type of the callback used for the #GSource
9449  * returned by g_pollable_input_stream_create_source() and
9450  * g_pollable_output_stream_create_source().
9451  *
9452  * Params:
9453  *     pollableStream = the #GPollableInputStream or #GPollableOutputStream
9454  *     userData = data passed in by the user.
9455  *
9456  * Returns: it should return %FALSE if the source should be removed.
9457  *
9458  * Since: 2.28
9459  */
9460 public alias extern(C) int function(GObject* pollableStream, void* userData) GPollableSourceFunc;
9461 
9462 /**
9463  * Changes the size of the memory block pointed to by @data to
9464  * @size bytes.
9465  *
9466  * The function should have the same semantics as realloc().
9467  *
9468  * Params:
9469  *     data = memory block to reallocate
9470  *     size = size to reallocate @data to
9471  *
9472  * Returns: a pointer to the reallocated memory
9473  */
9474 public alias extern(C) void* function(void* data, size_t size) GReallocFunc;
9475 
9476 /**
9477  * The type for the function that is used to convert from #GSettings to
9478  * an object property. The @value is already initialized to hold values
9479  * of the appropriate type.
9480  *
9481  * Params:
9482  *     value = return location for the property value
9483  *     variant = the #GVariant
9484  *     userData = user data that was specified when the binding was created
9485  *
9486  * Returns: %TRUE if the conversion succeeded, %FALSE in case of an error
9487  */
9488 public alias extern(C) int function(GValue* value, GVariant* variant, void* userData) GSettingsBindGetMapping;
9489 
9490 /**
9491  * The type for the function that is used to convert an object property
9492  * value to a #GVariant for storing it in #GSettings.
9493  *
9494  * Params:
9495  *     value = a #GValue containing the property value to map
9496  *     expectedType = the #GVariantType to create
9497  *     userData = user data that was specified when the binding was created
9498  *
9499  * Returns: a new #GVariant holding the data from @value,
9500  *     or %NULL in case of an error
9501  */
9502 public alias extern(C) GVariant* function(GValue* value, GVariantType* expectedType, void* userData) GSettingsBindSetMapping;
9503 
9504 /**
9505  * The type of the function that is used to convert from a value stored
9506  * in a #GSettings to a value that is useful to the application.
9507  *
9508  * If the value is successfully mapped, the result should be stored at
9509  * @result and %TRUE returned.  If mapping fails (for example, if @value
9510  * is not in the right format) then %FALSE should be returned.
9511  *
9512  * If @value is %NULL then it means that the mapping function is being
9513  * given a "last chance" to successfully return a valid value.  %TRUE
9514  * must be returned in this case.
9515  *
9516  * Params:
9517  *     value = the #GVariant to map, or %NULL
9518  *     result = the result of the mapping
9519  *     userData = the user data that was passed to
9520  *         g_settings_get_mapped()
9521  *
9522  * Returns: %TRUE if the conversion succeeded, %FALSE in case of an error
9523  */
9524 public alias extern(C) int function(GVariant* value, void** result, void* userData) GSettingsGetMapping;
9525 
9526 /**
9527  * Simple thread function that runs an asynchronous operation and
9528  * checks for cancellation.
9529  *
9530  * Params:
9531  *     res = a #GSimpleAsyncResult.
9532  *     object = a #GObject.
9533  *     cancellable = optional #GCancellable object, %NULL to ignore.
9534  */
9535 public alias extern(C) void function(GSimpleAsyncResult* res, GObject* object, GCancellable* cancellable) GSimpleAsyncThreadFunc;
9536 
9537 /**
9538  * This is the function type of the callback used for the #GSource
9539  * returned by g_socket_create_source().
9540  *
9541  * Params:
9542  *     socket = the #GSocket
9543  *     condition = the current condition at the source fired.
9544  *     userData = data passed in by the user.
9545  *
9546  * Returns: it should return %FALSE if the source should be removed.
9547  *
9548  * Since: 2.22
9549  */
9550 public alias extern(C) int function(GSocket* socket, GIOCondition condition, void* userData) GSocketSourceFunc;
9551 
9552 /**
9553  * The prototype for a task function to be run in a thread via
9554  * g_task_run_in_thread() or g_task_run_in_thread_sync().
9555  *
9556  * If the return-on-cancel flag is set on @task, and @cancellable gets
9557  * cancelled, then the #GTask will be completed immediately (as though
9558  * g_task_return_error_if_cancelled() had been called), without
9559  * waiting for the task function to complete. However, the task
9560  * function will continue running in its thread in the background. The
9561  * function therefore needs to be careful about how it uses
9562  * externally-visible state in this case. See
9563  * g_task_set_return_on_cancel() for more details.
9564  *
9565  * Other than in that case, @task will be completed when the
9566  * #GTaskThreadFunc returns, not when it calls a
9567  * `g_task_return_` function.
9568  *
9569  * Params:
9570  *     task = the #GTask
9571  *     sourceObject = @task's source object
9572  *     taskData = @task's task data
9573  *     cancellable = @task's #GCancellable, or %NULL
9574  *
9575  * Since: 2.36
9576  */
9577 public alias extern(C) void function(GTask* task, void* sourceObject, void* taskData, GCancellable* cancellable) GTaskThreadFunc;
9578 
9579 /**
9580  * This function type is used by g_vfs_register_uri_scheme() to make it
9581  * possible for a client to associate an URI scheme to a different #GFile
9582  * implementation.
9583  *
9584  * The client should return a reference to the new file that has been
9585  * created for @uri, or %NULL to continue with the default implementation.
9586  *
9587  * Params:
9588  *     vfs = a #GVfs
9589  *     identifier = the identifier to look up a #GFile for. This can either
9590  *         be an URI or a parse name as returned by g_file_get_parse_name()
9591  *     userData = user data passed to the function
9592  *
9593  * Returns: a #GFile for @identifier.
9594  *
9595  * Since: 2.50
9596  */
9597 public alias extern(C) GFile* function(GVfs* vfs, const(char)* identifier, void* userData) GVfsFileLookupFunc;
9598 
9599 /**
9600  * Extension point for default handler to URI association. See
9601  * [Extending GIO][extending-gio].
9602  *
9603  * Deprecated: The #GDesktopAppInfoLookup interface is deprecated and
9604  * unused by GIO.
9605  */
9606 enum DESKTOP_APP_INFO_LOOKUP_EXTENSION_POINT_NAME = "gio-desktop-app-info-lookup";
9607 alias G_DESKTOP_APP_INFO_LOOKUP_EXTENSION_POINT_NAME = DESKTOP_APP_INFO_LOOKUP_EXTENSION_POINT_NAME;
9608 
9609 /**
9610  * The string used to obtain a Unix device path with g_drive_get_identifier().
9611  */
9612 enum DRIVE_IDENTIFIER_KIND_UNIX_DEVICE = "unix-device";
9613 alias G_DRIVE_IDENTIFIER_KIND_UNIX_DEVICE = DRIVE_IDENTIFIER_KIND_UNIX_DEVICE;
9614 
9615 /**
9616  * A key in the "access" namespace for checking deletion privileges.
9617  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
9618  * This attribute will be %TRUE if the user is able to delete the file.
9619  */
9620 enum FILE_ATTRIBUTE_ACCESS_CAN_DELETE = "access::can-delete";
9621 alias G_FILE_ATTRIBUTE_ACCESS_CAN_DELETE = FILE_ATTRIBUTE_ACCESS_CAN_DELETE;
9622 
9623 /**
9624  * A key in the "access" namespace for getting execution privileges.
9625  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
9626  * This attribute will be %TRUE if the user is able to execute the file.
9627  */
9628 enum FILE_ATTRIBUTE_ACCESS_CAN_EXECUTE = "access::can-execute";
9629 alias G_FILE_ATTRIBUTE_ACCESS_CAN_EXECUTE = FILE_ATTRIBUTE_ACCESS_CAN_EXECUTE;
9630 
9631 /**
9632  * A key in the "access" namespace for getting read privileges.
9633  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
9634  * This attribute will be %TRUE if the user is able to read the file.
9635  */
9636 enum FILE_ATTRIBUTE_ACCESS_CAN_READ = "access::can-read";
9637 alias G_FILE_ATTRIBUTE_ACCESS_CAN_READ = FILE_ATTRIBUTE_ACCESS_CAN_READ;
9638 
9639 /**
9640  * A key in the "access" namespace for checking renaming privileges.
9641  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
9642  * This attribute will be %TRUE if the user is able to rename the file.
9643  */
9644 enum FILE_ATTRIBUTE_ACCESS_CAN_RENAME = "access::can-rename";
9645 alias G_FILE_ATTRIBUTE_ACCESS_CAN_RENAME = FILE_ATTRIBUTE_ACCESS_CAN_RENAME;
9646 
9647 /**
9648  * A key in the "access" namespace for checking trashing privileges.
9649  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
9650  * This attribute will be %TRUE if the user is able to move the file to
9651  * the trash.
9652  */
9653 enum FILE_ATTRIBUTE_ACCESS_CAN_TRASH = "access::can-trash";
9654 alias G_FILE_ATTRIBUTE_ACCESS_CAN_TRASH = FILE_ATTRIBUTE_ACCESS_CAN_TRASH;
9655 
9656 /**
9657  * A key in the "access" namespace for getting write privileges.
9658  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
9659  * This attribute will be %TRUE if the user is able to write to the file.
9660  */
9661 enum FILE_ATTRIBUTE_ACCESS_CAN_WRITE = "access::can-write";
9662 alias G_FILE_ATTRIBUTE_ACCESS_CAN_WRITE = FILE_ATTRIBUTE_ACCESS_CAN_WRITE;
9663 
9664 /**
9665  * A key in the "dos" namespace for checking if the file's archive flag
9666  * is set. This attribute is %TRUE if the archive flag is set. This attribute
9667  * is only available for DOS file systems. Corresponding #GFileAttributeType
9668  * is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
9669  */
9670 enum FILE_ATTRIBUTE_DOS_IS_ARCHIVE = "dos::is-archive";
9671 alias G_FILE_ATTRIBUTE_DOS_IS_ARCHIVE = FILE_ATTRIBUTE_DOS_IS_ARCHIVE;
9672 
9673 /**
9674  * A key in the "dos" namespace for checking if the file is a NTFS mount point
9675  * (a volume mount or a junction point).
9676  * This attribute is %TRUE if file is a reparse point of type
9677  * [IO_REPARSE_TAG_MOUNT_POINT](https://msdn.microsoft.com/en-us/library/dd541667.aspx).
9678  * This attribute is only available for DOS file systems.
9679  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
9680  */
9681 enum FILE_ATTRIBUTE_DOS_IS_MOUNTPOINT = "dos::is-mountpoint";
9682 alias G_FILE_ATTRIBUTE_DOS_IS_MOUNTPOINT = FILE_ATTRIBUTE_DOS_IS_MOUNTPOINT;
9683 
9684 /**
9685  * A key in the "dos" namespace for checking if the file's backup flag
9686  * is set. This attribute is %TRUE if the backup flag is set. This attribute
9687  * is only available for DOS file systems. Corresponding #GFileAttributeType
9688  * is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
9689  */
9690 enum FILE_ATTRIBUTE_DOS_IS_SYSTEM = "dos::is-system";
9691 alias G_FILE_ATTRIBUTE_DOS_IS_SYSTEM = FILE_ATTRIBUTE_DOS_IS_SYSTEM;
9692 
9693 /**
9694  * A key in the "dos" namespace for getting the file NTFS reparse tag.
9695  * This value is 0 for files that are not reparse points.
9696  * See the [Reparse Tags](https://msdn.microsoft.com/en-us/library/dd541667.aspx)
9697  * page for possible reparse tag values. Corresponding #GFileAttributeType
9698  * is %G_FILE_ATTRIBUTE_TYPE_UINT32.
9699  */
9700 enum FILE_ATTRIBUTE_DOS_REPARSE_POINT_TAG = "dos::reparse-point-tag";
9701 alias G_FILE_ATTRIBUTE_DOS_REPARSE_POINT_TAG = FILE_ATTRIBUTE_DOS_REPARSE_POINT_TAG;
9702 
9703 /**
9704  * A key in the "etag" namespace for getting the value of the file's
9705  * entity tag. Corresponding #GFileAttributeType is
9706  * %G_FILE_ATTRIBUTE_TYPE_STRING.
9707  */
9708 enum FILE_ATTRIBUTE_ETAG_VALUE = "etag::value";
9709 alias G_FILE_ATTRIBUTE_ETAG_VALUE = FILE_ATTRIBUTE_ETAG_VALUE;
9710 
9711 /**
9712  * A key in the "filesystem" namespace for getting the number of bytes of free space left on the
9713  * file system. Corresponding #GFileAttributeType is
9714  * %G_FILE_ATTRIBUTE_TYPE_UINT64.
9715  */
9716 enum FILE_ATTRIBUTE_FILESYSTEM_FREE = "filesystem::free";
9717 alias G_FILE_ATTRIBUTE_FILESYSTEM_FREE = FILE_ATTRIBUTE_FILESYSTEM_FREE;
9718 
9719 /**
9720  * A key in the "filesystem" namespace for checking if the file system
9721  * is read only. Is set to %TRUE if the file system is read only.
9722  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
9723  */
9724 enum FILE_ATTRIBUTE_FILESYSTEM_READONLY = "filesystem::readonly";
9725 alias G_FILE_ATTRIBUTE_FILESYSTEM_READONLY = FILE_ATTRIBUTE_FILESYSTEM_READONLY;
9726 
9727 /**
9728  * A key in the "filesystem" namespace for checking if the file system
9729  * is remote. Is set to %TRUE if the file system is remote.
9730  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
9731  */
9732 enum FILE_ATTRIBUTE_FILESYSTEM_REMOTE = "filesystem::remote";
9733 alias G_FILE_ATTRIBUTE_FILESYSTEM_REMOTE = FILE_ATTRIBUTE_FILESYSTEM_REMOTE;
9734 
9735 /**
9736  * A key in the "filesystem" namespace for getting the total size (in bytes) of the file system,
9737  * used in g_file_query_filesystem_info(). Corresponding #GFileAttributeType
9738  * is %G_FILE_ATTRIBUTE_TYPE_UINT64.
9739  */
9740 enum FILE_ATTRIBUTE_FILESYSTEM_SIZE = "filesystem::size";
9741 alias G_FILE_ATTRIBUTE_FILESYSTEM_SIZE = FILE_ATTRIBUTE_FILESYSTEM_SIZE;
9742 
9743 /**
9744  * A key in the "filesystem" namespace for getting the file system's type.
9745  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_STRING.
9746  */
9747 enum FILE_ATTRIBUTE_FILESYSTEM_TYPE = "filesystem::type";
9748 alias G_FILE_ATTRIBUTE_FILESYSTEM_TYPE = FILE_ATTRIBUTE_FILESYSTEM_TYPE;
9749 
9750 /**
9751  * A key in the "filesystem" namespace for getting the number of bytes of used on the
9752  * file system. Corresponding #GFileAttributeType is
9753  * %G_FILE_ATTRIBUTE_TYPE_UINT64.
9754  */
9755 enum FILE_ATTRIBUTE_FILESYSTEM_USED = "filesystem::used";
9756 alias G_FILE_ATTRIBUTE_FILESYSTEM_USED = FILE_ATTRIBUTE_FILESYSTEM_USED;
9757 
9758 /**
9759  * A key in the "filesystem" namespace for hinting a file manager
9760  * application whether it should preview (e.g. thumbnail) files on the
9761  * file system. The value for this key contain a
9762  * #GFilesystemPreviewType.
9763  */
9764 enum FILE_ATTRIBUTE_FILESYSTEM_USE_PREVIEW = "filesystem::use-preview";
9765 alias G_FILE_ATTRIBUTE_FILESYSTEM_USE_PREVIEW = FILE_ATTRIBUTE_FILESYSTEM_USE_PREVIEW;
9766 
9767 /**
9768  * A key in the "gvfs" namespace that gets the name of the current
9769  * GVFS backend in use. Corresponding #GFileAttributeType is
9770  * %G_FILE_ATTRIBUTE_TYPE_STRING.
9771  */
9772 enum FILE_ATTRIBUTE_GVFS_BACKEND = "gvfs::backend";
9773 alias G_FILE_ATTRIBUTE_GVFS_BACKEND = FILE_ATTRIBUTE_GVFS_BACKEND;
9774 
9775 /**
9776  * A key in the "id" namespace for getting a file identifier.
9777  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_STRING.
9778  * An example use would be during listing files, to avoid recursive
9779  * directory scanning.
9780  */
9781 enum FILE_ATTRIBUTE_ID_FILE = "id::file";
9782 alias G_FILE_ATTRIBUTE_ID_FILE = FILE_ATTRIBUTE_ID_FILE;
9783 
9784 /**
9785  * A key in the "id" namespace for getting the file system identifier.
9786  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_STRING.
9787  * An example use would be during drag and drop to see if the source
9788  * and target are on the same filesystem (default to move) or not (default
9789  * to copy).
9790  */
9791 enum FILE_ATTRIBUTE_ID_FILESYSTEM = "id::filesystem";
9792 alias G_FILE_ATTRIBUTE_ID_FILESYSTEM = FILE_ATTRIBUTE_ID_FILESYSTEM;
9793 
9794 /**
9795  * A key in the "mountable" namespace for checking if a file (of type G_FILE_TYPE_MOUNTABLE) can be ejected.
9796  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
9797  */
9798 enum FILE_ATTRIBUTE_MOUNTABLE_CAN_EJECT = "mountable::can-eject";
9799 alias G_FILE_ATTRIBUTE_MOUNTABLE_CAN_EJECT = FILE_ATTRIBUTE_MOUNTABLE_CAN_EJECT;
9800 
9801 /**
9802  * A key in the "mountable" namespace for checking if a file (of type G_FILE_TYPE_MOUNTABLE) is mountable.
9803  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
9804  */
9805 enum FILE_ATTRIBUTE_MOUNTABLE_CAN_MOUNT = "mountable::can-mount";
9806 alias G_FILE_ATTRIBUTE_MOUNTABLE_CAN_MOUNT = FILE_ATTRIBUTE_MOUNTABLE_CAN_MOUNT;
9807 
9808 /**
9809  * A key in the "mountable" namespace for checking if a file (of type G_FILE_TYPE_MOUNTABLE) can be polled.
9810  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
9811  */
9812 enum FILE_ATTRIBUTE_MOUNTABLE_CAN_POLL = "mountable::can-poll";
9813 alias G_FILE_ATTRIBUTE_MOUNTABLE_CAN_POLL = FILE_ATTRIBUTE_MOUNTABLE_CAN_POLL;
9814 
9815 /**
9816  * A key in the "mountable" namespace for checking if a file (of type G_FILE_TYPE_MOUNTABLE) can be started.
9817  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
9818  */
9819 enum FILE_ATTRIBUTE_MOUNTABLE_CAN_START = "mountable::can-start";
9820 alias G_FILE_ATTRIBUTE_MOUNTABLE_CAN_START = FILE_ATTRIBUTE_MOUNTABLE_CAN_START;
9821 
9822 /**
9823  * A key in the "mountable" namespace for checking if a file (of type G_FILE_TYPE_MOUNTABLE) can be started
9824  * degraded.
9825  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
9826  */
9827 enum FILE_ATTRIBUTE_MOUNTABLE_CAN_START_DEGRADED = "mountable::can-start-degraded";
9828 alias G_FILE_ATTRIBUTE_MOUNTABLE_CAN_START_DEGRADED = FILE_ATTRIBUTE_MOUNTABLE_CAN_START_DEGRADED;
9829 
9830 /**
9831  * A key in the "mountable" namespace for checking if a file (of type G_FILE_TYPE_MOUNTABLE) can be stopped.
9832  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
9833  */
9834 enum FILE_ATTRIBUTE_MOUNTABLE_CAN_STOP = "mountable::can-stop";
9835 alias G_FILE_ATTRIBUTE_MOUNTABLE_CAN_STOP = FILE_ATTRIBUTE_MOUNTABLE_CAN_STOP;
9836 
9837 /**
9838  * A key in the "mountable" namespace for checking if a file (of type G_FILE_TYPE_MOUNTABLE)  is unmountable.
9839  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
9840  */
9841 enum FILE_ATTRIBUTE_MOUNTABLE_CAN_UNMOUNT = "mountable::can-unmount";
9842 alias G_FILE_ATTRIBUTE_MOUNTABLE_CAN_UNMOUNT = FILE_ATTRIBUTE_MOUNTABLE_CAN_UNMOUNT;
9843 
9844 /**
9845  * A key in the "mountable" namespace for getting the HAL UDI for the mountable
9846  * file. Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_STRING.
9847  */
9848 enum FILE_ATTRIBUTE_MOUNTABLE_HAL_UDI = "mountable::hal-udi";
9849 alias G_FILE_ATTRIBUTE_MOUNTABLE_HAL_UDI = FILE_ATTRIBUTE_MOUNTABLE_HAL_UDI;
9850 
9851 /**
9852  * A key in the "mountable" namespace for checking if a file (of type G_FILE_TYPE_MOUNTABLE)
9853  * is automatically polled for media.
9854  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
9855  */
9856 enum FILE_ATTRIBUTE_MOUNTABLE_IS_MEDIA_CHECK_AUTOMATIC = "mountable::is-media-check-automatic";
9857 alias G_FILE_ATTRIBUTE_MOUNTABLE_IS_MEDIA_CHECK_AUTOMATIC = FILE_ATTRIBUTE_MOUNTABLE_IS_MEDIA_CHECK_AUTOMATIC;
9858 
9859 /**
9860  * A key in the "mountable" namespace for getting the #GDriveStartStopType.
9861  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT32.
9862  */
9863 enum FILE_ATTRIBUTE_MOUNTABLE_START_STOP_TYPE = "mountable::start-stop-type";
9864 alias G_FILE_ATTRIBUTE_MOUNTABLE_START_STOP_TYPE = FILE_ATTRIBUTE_MOUNTABLE_START_STOP_TYPE;
9865 
9866 /**
9867  * A key in the "mountable" namespace for getting the unix device.
9868  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT32.
9869  */
9870 enum FILE_ATTRIBUTE_MOUNTABLE_UNIX_DEVICE = "mountable::unix-device";
9871 alias G_FILE_ATTRIBUTE_MOUNTABLE_UNIX_DEVICE = FILE_ATTRIBUTE_MOUNTABLE_UNIX_DEVICE;
9872 
9873 /**
9874  * A key in the "mountable" namespace for getting the unix device file.
9875  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_STRING.
9876  */
9877 enum FILE_ATTRIBUTE_MOUNTABLE_UNIX_DEVICE_FILE = "mountable::unix-device-file";
9878 alias G_FILE_ATTRIBUTE_MOUNTABLE_UNIX_DEVICE_FILE = FILE_ATTRIBUTE_MOUNTABLE_UNIX_DEVICE_FILE;
9879 
9880 /**
9881  * A key in the "owner" namespace for getting the file owner's group.
9882  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_STRING.
9883  */
9884 enum FILE_ATTRIBUTE_OWNER_GROUP = "owner::group";
9885 alias G_FILE_ATTRIBUTE_OWNER_GROUP = FILE_ATTRIBUTE_OWNER_GROUP;
9886 
9887 /**
9888  * A key in the "owner" namespace for getting the user name of the
9889  * file's owner. Corresponding #GFileAttributeType is
9890  * %G_FILE_ATTRIBUTE_TYPE_STRING.
9891  */
9892 enum FILE_ATTRIBUTE_OWNER_USER = "owner::user";
9893 alias G_FILE_ATTRIBUTE_OWNER_USER = FILE_ATTRIBUTE_OWNER_USER;
9894 
9895 /**
9896  * A key in the "owner" namespace for getting the real name of the
9897  * user that owns the file. Corresponding #GFileAttributeType is
9898  * %G_FILE_ATTRIBUTE_TYPE_STRING.
9899  */
9900 enum FILE_ATTRIBUTE_OWNER_USER_REAL = "owner::user-real";
9901 alias G_FILE_ATTRIBUTE_OWNER_USER_REAL = FILE_ATTRIBUTE_OWNER_USER_REAL;
9902 
9903 /**
9904  * A key in the "preview" namespace for getting a #GIcon that can be
9905  * used to get preview of the file. For example, it may be a low
9906  * resolution thumbnail without metadata. Corresponding
9907  * #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_OBJECT.  The value
9908  * for this key should contain a #GIcon.
9909  */
9910 enum FILE_ATTRIBUTE_PREVIEW_ICON = "preview::icon";
9911 alias G_FILE_ATTRIBUTE_PREVIEW_ICON = FILE_ATTRIBUTE_PREVIEW_ICON;
9912 
9913 /**
9914  * A key in the "recent" namespace for getting time, when the metadata for the
9915  * file in `recent:///` was last changed. Corresponding #GFileAttributeType is
9916  * %G_FILE_ATTRIBUTE_TYPE_INT64.
9917  */
9918 enum FILE_ATTRIBUTE_RECENT_MODIFIED = "recent::modified";
9919 alias G_FILE_ATTRIBUTE_RECENT_MODIFIED = FILE_ATTRIBUTE_RECENT_MODIFIED;
9920 
9921 /**
9922  * A key in the "selinux" namespace for getting the file's SELinux
9923  * context. Corresponding #GFileAttributeType is
9924  * %G_FILE_ATTRIBUTE_TYPE_STRING. Note that this attribute is only
9925  * available if GLib has been built with SELinux support.
9926  */
9927 enum FILE_ATTRIBUTE_SELINUX_CONTEXT = "selinux::context";
9928 alias G_FILE_ATTRIBUTE_SELINUX_CONTEXT = FILE_ATTRIBUTE_SELINUX_CONTEXT;
9929 
9930 /**
9931  * A key in the "standard" namespace for getting the amount of disk space
9932  * that is consumed by the file (in bytes).  This will generally be larger
9933  * than the file size (due to block size overhead) but can occasionally be
9934  * smaller (for example, for sparse files).
9935  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT64.
9936  */
9937 enum FILE_ATTRIBUTE_STANDARD_ALLOCATED_SIZE = "standard::allocated-size";
9938 alias G_FILE_ATTRIBUTE_STANDARD_ALLOCATED_SIZE = FILE_ATTRIBUTE_STANDARD_ALLOCATED_SIZE;
9939 
9940 /**
9941  * A key in the "standard" namespace for getting the content type of the file.
9942  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_STRING.
9943  * The value for this key should contain a valid content type.
9944  */
9945 enum FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE = "standard::content-type";
9946 alias G_FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE = FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE;
9947 
9948 /**
9949  * A key in the "standard" namespace for getting the copy name of the file.
9950  * The copy name is an optional version of the name. If available it's always
9951  * in UTF8, and corresponds directly to the original filename (only transcoded to
9952  * UTF8). This is useful if you want to copy the file to another filesystem that
9953  * might have a different encoding. If the filename is not a valid string in the
9954  * encoding selected for the filesystem it is in then the copy name will not be set.
9955  *
9956  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_STRING.
9957  */
9958 enum FILE_ATTRIBUTE_STANDARD_COPY_NAME = "standard::copy-name";
9959 alias G_FILE_ATTRIBUTE_STANDARD_COPY_NAME = FILE_ATTRIBUTE_STANDARD_COPY_NAME;
9960 
9961 /**
9962  * A key in the "standard" namespace for getting the description of the file.
9963  * The description is a utf8 string that describes the file, generally containing
9964  * the filename, but can also contain furter information. Example descriptions
9965  * could be "filename (on hostname)" for a remote file or "filename (in trash)"
9966  * for a file in the trash. This is useful for instance as the window title
9967  * when displaying a directory or for a bookmarks menu.
9968  *
9969  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_STRING.
9970  */
9971 enum FILE_ATTRIBUTE_STANDARD_DESCRIPTION = "standard::description";
9972 alias G_FILE_ATTRIBUTE_STANDARD_DESCRIPTION = FILE_ATTRIBUTE_STANDARD_DESCRIPTION;
9973 
9974 /**
9975  * A key in the "standard" namespace for getting the display name of the file.
9976  * A display name is guaranteed to be in UTF8 and can thus be displayed in
9977  * the UI.
9978  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_STRING.
9979  */
9980 enum FILE_ATTRIBUTE_STANDARD_DISPLAY_NAME = "standard::display-name";
9981 alias G_FILE_ATTRIBUTE_STANDARD_DISPLAY_NAME = FILE_ATTRIBUTE_STANDARD_DISPLAY_NAME;
9982 
9983 /**
9984  * A key in the "standard" namespace for edit name of the file.
9985  * An edit name is similar to the display name, but it is meant to be
9986  * used when you want to rename the file in the UI. The display name
9987  * might contain information you don't want in the new filename (such as
9988  * "(invalid unicode)" if the filename was in an invalid encoding).
9989  *
9990  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_STRING.
9991  */
9992 enum FILE_ATTRIBUTE_STANDARD_EDIT_NAME = "standard::edit-name";
9993 alias G_FILE_ATTRIBUTE_STANDARD_EDIT_NAME = FILE_ATTRIBUTE_STANDARD_EDIT_NAME;
9994 
9995 /**
9996  * A key in the "standard" namespace for getting the fast content type.
9997  * The fast content type isn't as reliable as the regular one, as it
9998  * only uses the filename to guess it, but it is faster to calculate than the
9999  * regular content type.
10000  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_STRING.
10001  */
10002 enum FILE_ATTRIBUTE_STANDARD_FAST_CONTENT_TYPE = "standard::fast-content-type";
10003 alias G_FILE_ATTRIBUTE_STANDARD_FAST_CONTENT_TYPE = FILE_ATTRIBUTE_STANDARD_FAST_CONTENT_TYPE;
10004 
10005 /**
10006  * A key in the "standard" namespace for getting the icon for the file.
10007  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_OBJECT.
10008  * The value for this key should contain a #GIcon.
10009  */
10010 enum FILE_ATTRIBUTE_STANDARD_ICON = "standard::icon";
10011 alias G_FILE_ATTRIBUTE_STANDARD_ICON = FILE_ATTRIBUTE_STANDARD_ICON;
10012 
10013 /**
10014  * A key in the "standard" namespace for checking if a file is a backup file.
10015  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
10016  */
10017 enum FILE_ATTRIBUTE_STANDARD_IS_BACKUP = "standard::is-backup";
10018 alias G_FILE_ATTRIBUTE_STANDARD_IS_BACKUP = FILE_ATTRIBUTE_STANDARD_IS_BACKUP;
10019 
10020 /**
10021  * A key in the "standard" namespace for checking if a file is hidden.
10022  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
10023  */
10024 enum FILE_ATTRIBUTE_STANDARD_IS_HIDDEN = "standard::is-hidden";
10025 alias G_FILE_ATTRIBUTE_STANDARD_IS_HIDDEN = FILE_ATTRIBUTE_STANDARD_IS_HIDDEN;
10026 
10027 /**
10028  * A key in the "standard" namespace for checking if the file is a symlink.
10029  * Typically the actual type is something else, if we followed the symlink
10030  * to get the type.
10031  * On Windows NTFS mountpoints are considered to be symlinks as well.
10032  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
10033  */
10034 enum FILE_ATTRIBUTE_STANDARD_IS_SYMLINK = "standard::is-symlink";
10035 alias G_FILE_ATTRIBUTE_STANDARD_IS_SYMLINK = FILE_ATTRIBUTE_STANDARD_IS_SYMLINK;
10036 
10037 /**
10038  * A key in the "standard" namespace for checking if a file is virtual.
10039  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
10040  */
10041 enum FILE_ATTRIBUTE_STANDARD_IS_VIRTUAL = "standard::is-virtual";
10042 alias G_FILE_ATTRIBUTE_STANDARD_IS_VIRTUAL = FILE_ATTRIBUTE_STANDARD_IS_VIRTUAL;
10043 
10044 /**
10045  * A key in the "standard" namespace for checking if a file is
10046  * volatile. This is meant for opaque, non-POSIX-like backends to
10047  * indicate that the URI is not persistent. Applications should look
10048  * at #G_FILE_ATTRIBUTE_STANDARD_SYMLINK_TARGET for the persistent URI.
10049  *
10050  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
10051  */
10052 enum FILE_ATTRIBUTE_STANDARD_IS_VOLATILE = "standard::is-volatile";
10053 alias G_FILE_ATTRIBUTE_STANDARD_IS_VOLATILE = FILE_ATTRIBUTE_STANDARD_IS_VOLATILE;
10054 
10055 /**
10056  * A key in the "standard" namespace for getting the name of the file.
10057  * The name is the on-disk filename which may not be in any known encoding,
10058  * and can thus not be generally displayed as is.
10059  * Use #G_FILE_ATTRIBUTE_STANDARD_DISPLAY_NAME if you need to display the
10060  * name in a user interface.
10061  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BYTE_STRING.
10062  */
10063 enum FILE_ATTRIBUTE_STANDARD_NAME = "standard::name";
10064 alias G_FILE_ATTRIBUTE_STANDARD_NAME = FILE_ATTRIBUTE_STANDARD_NAME;
10065 
10066 /**
10067  * A key in the "standard" namespace for getting the file's size (in bytes).
10068  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT64.
10069  */
10070 enum FILE_ATTRIBUTE_STANDARD_SIZE = "standard::size";
10071 alias G_FILE_ATTRIBUTE_STANDARD_SIZE = FILE_ATTRIBUTE_STANDARD_SIZE;
10072 
10073 /**
10074  * A key in the "standard" namespace for setting the sort order of a file.
10075  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_INT32.
10076  * An example use would be in file managers, which would use this key
10077  * to set the order files are displayed. Files with smaller sort order
10078  * should be sorted first, and files without sort order as if sort order
10079  * was zero.
10080  */
10081 enum FILE_ATTRIBUTE_STANDARD_SORT_ORDER = "standard::sort-order";
10082 alias G_FILE_ATTRIBUTE_STANDARD_SORT_ORDER = FILE_ATTRIBUTE_STANDARD_SORT_ORDER;
10083 
10084 /**
10085  * A key in the "standard" namespace for getting the symbolic icon for the file.
10086  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_OBJECT.
10087  * The value for this key should contain a #GIcon.
10088  */
10089 enum FILE_ATTRIBUTE_STANDARD_SYMBOLIC_ICON = "standard::symbolic-icon";
10090 alias G_FILE_ATTRIBUTE_STANDARD_SYMBOLIC_ICON = FILE_ATTRIBUTE_STANDARD_SYMBOLIC_ICON;
10091 
10092 /**
10093  * A key in the "standard" namespace for getting the symlink target, if the file
10094  * is a symlink. Corresponding #GFileAttributeType is
10095  * %G_FILE_ATTRIBUTE_TYPE_BYTE_STRING.
10096  */
10097 enum FILE_ATTRIBUTE_STANDARD_SYMLINK_TARGET = "standard::symlink-target";
10098 alias G_FILE_ATTRIBUTE_STANDARD_SYMLINK_TARGET = FILE_ATTRIBUTE_STANDARD_SYMLINK_TARGET;
10099 
10100 /**
10101  * A key in the "standard" namespace for getting the target URI for the file, in
10102  * the case of %G_FILE_TYPE_SHORTCUT or %G_FILE_TYPE_MOUNTABLE files.
10103  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_STRING.
10104  */
10105 enum FILE_ATTRIBUTE_STANDARD_TARGET_URI = "standard::target-uri";
10106 alias G_FILE_ATTRIBUTE_STANDARD_TARGET_URI = FILE_ATTRIBUTE_STANDARD_TARGET_URI;
10107 
10108 /**
10109  * A key in the "standard" namespace for storing file types.
10110  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT32.
10111  * The value for this key should contain a #GFileType.
10112  */
10113 enum FILE_ATTRIBUTE_STANDARD_TYPE = "standard::type";
10114 alias G_FILE_ATTRIBUTE_STANDARD_TYPE = FILE_ATTRIBUTE_STANDARD_TYPE;
10115 
10116 /**
10117  * A key in the "thumbnail" namespace for checking if thumbnailing failed.
10118  * This attribute is %TRUE if thumbnailing failed. Corresponding
10119  * #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
10120  */
10121 enum FILE_ATTRIBUTE_THUMBNAILING_FAILED = "thumbnail::failed";
10122 alias G_FILE_ATTRIBUTE_THUMBNAILING_FAILED = FILE_ATTRIBUTE_THUMBNAILING_FAILED;
10123 
10124 /**
10125  * A key in the "thumbnail" namespace for checking whether the thumbnail is outdated.
10126  * This attribute is %TRUE if the thumbnail is up-to-date with the file it represents,
10127  * and %FALSE if the file has been modified since the thumbnail was generated.
10128  *
10129  * If %G_FILE_ATTRIBUTE_THUMBNAILING_FAILED is %TRUE and this attribute is %FALSE,
10130  * it indicates that thumbnailing may be attempted again and may succeed.
10131  *
10132  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
10133  */
10134 enum FILE_ATTRIBUTE_THUMBNAIL_IS_VALID = "thumbnail::is-valid";
10135 alias G_FILE_ATTRIBUTE_THUMBNAIL_IS_VALID = FILE_ATTRIBUTE_THUMBNAIL_IS_VALID;
10136 
10137 /**
10138  * A key in the "thumbnail" namespace for getting the path to the thumbnail
10139  * image. Corresponding #GFileAttributeType is
10140  * %G_FILE_ATTRIBUTE_TYPE_BYTE_STRING.
10141  */
10142 enum FILE_ATTRIBUTE_THUMBNAIL_PATH = "thumbnail::path";
10143 alias G_FILE_ATTRIBUTE_THUMBNAIL_PATH = FILE_ATTRIBUTE_THUMBNAIL_PATH;
10144 
10145 /**
10146  * A key in the "time" namespace for getting the time the file was last
10147  * accessed. Corresponding #GFileAttributeType is
10148  * %G_FILE_ATTRIBUTE_TYPE_UINT64, and contains the time since the
10149  * file was last accessed, in seconds since the UNIX epoch.
10150  */
10151 enum FILE_ATTRIBUTE_TIME_ACCESS = "time::access";
10152 alias G_FILE_ATTRIBUTE_TIME_ACCESS = FILE_ATTRIBUTE_TIME_ACCESS;
10153 
10154 /**
10155  * A key in the "time" namespace for getting the microseconds of the time
10156  * the file was last accessed. This should be used in conjunction with
10157  * #G_FILE_ATTRIBUTE_TIME_ACCESS. Corresponding #GFileAttributeType is
10158  * %G_FILE_ATTRIBUTE_TYPE_UINT32.
10159  */
10160 enum FILE_ATTRIBUTE_TIME_ACCESS_USEC = "time::access-usec";
10161 alias G_FILE_ATTRIBUTE_TIME_ACCESS_USEC = FILE_ATTRIBUTE_TIME_ACCESS_USEC;
10162 
10163 /**
10164  * A key in the "time" namespace for getting the time the file was last
10165  * changed. Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT64,
10166  * and contains the time since the file was last changed, in seconds since the
10167  * UNIX epoch.
10168  *
10169  * This corresponds to the traditional UNIX ctime.
10170  */
10171 enum FILE_ATTRIBUTE_TIME_CHANGED = "time::changed";
10172 alias G_FILE_ATTRIBUTE_TIME_CHANGED = FILE_ATTRIBUTE_TIME_CHANGED;
10173 
10174 /**
10175  * A key in the "time" namespace for getting the microseconds of the time
10176  * the file was last changed. This should be used in conjunction with
10177  * #G_FILE_ATTRIBUTE_TIME_CHANGED. Corresponding #GFileAttributeType is
10178  * %G_FILE_ATTRIBUTE_TYPE_UINT32.
10179  */
10180 enum FILE_ATTRIBUTE_TIME_CHANGED_USEC = "time::changed-usec";
10181 alias G_FILE_ATTRIBUTE_TIME_CHANGED_USEC = FILE_ATTRIBUTE_TIME_CHANGED_USEC;
10182 
10183 /**
10184  * A key in the "time" namespace for getting the time the file was created.
10185  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT64,
10186  * and contains the time since the file was created, in seconds since the UNIX
10187  * epoch.
10188  *
10189  * This corresponds to the NTFS ctime.
10190  */
10191 enum FILE_ATTRIBUTE_TIME_CREATED = "time::created";
10192 alias G_FILE_ATTRIBUTE_TIME_CREATED = FILE_ATTRIBUTE_TIME_CREATED;
10193 
10194 /**
10195  * A key in the "time" namespace for getting the microseconds of the time
10196  * the file was created. This should be used in conjunction with
10197  * #G_FILE_ATTRIBUTE_TIME_CREATED. Corresponding #GFileAttributeType is
10198  * %G_FILE_ATTRIBUTE_TYPE_UINT32.
10199  */
10200 enum FILE_ATTRIBUTE_TIME_CREATED_USEC = "time::created-usec";
10201 alias G_FILE_ATTRIBUTE_TIME_CREATED_USEC = FILE_ATTRIBUTE_TIME_CREATED_USEC;
10202 
10203 /**
10204  * A key in the "time" namespace for getting the time the file was last
10205  * modified. Corresponding #GFileAttributeType is
10206  * %G_FILE_ATTRIBUTE_TYPE_UINT64, and contains the time since the
10207  * file was modified, in seconds since the UNIX epoch.
10208  */
10209 enum FILE_ATTRIBUTE_TIME_MODIFIED = "time::modified";
10210 alias G_FILE_ATTRIBUTE_TIME_MODIFIED = FILE_ATTRIBUTE_TIME_MODIFIED;
10211 
10212 /**
10213  * A key in the "time" namespace for getting the microseconds of the time
10214  * the file was last modified. This should be used in conjunction with
10215  * #G_FILE_ATTRIBUTE_TIME_MODIFIED. Corresponding #GFileAttributeType is
10216  * %G_FILE_ATTRIBUTE_TYPE_UINT32.
10217  */
10218 enum FILE_ATTRIBUTE_TIME_MODIFIED_USEC = "time::modified-usec";
10219 alias G_FILE_ATTRIBUTE_TIME_MODIFIED_USEC = FILE_ATTRIBUTE_TIME_MODIFIED_USEC;
10220 
10221 /**
10222  * A key in the "trash" namespace.  When requested against
10223  * items in `trash:///`, will return the date and time when the file
10224  * was trashed. The format of the returned string is YYYY-MM-DDThh:mm:ss.
10225  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_STRING.
10226  */
10227 enum FILE_ATTRIBUTE_TRASH_DELETION_DATE = "trash::deletion-date";
10228 alias G_FILE_ATTRIBUTE_TRASH_DELETION_DATE = FILE_ATTRIBUTE_TRASH_DELETION_DATE;
10229 
10230 /**
10231  * A key in the "trash" namespace.  When requested against
10232  * `trash:///` returns the number of (toplevel) items in the trash folder.
10233  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT32.
10234  */
10235 enum FILE_ATTRIBUTE_TRASH_ITEM_COUNT = "trash::item-count";
10236 alias G_FILE_ATTRIBUTE_TRASH_ITEM_COUNT = FILE_ATTRIBUTE_TRASH_ITEM_COUNT;
10237 
10238 /**
10239  * A key in the "trash" namespace.  When requested against
10240  * items in `trash:///`, will return the original path to the file before it
10241  * was trashed. Corresponding #GFileAttributeType is
10242  * %G_FILE_ATTRIBUTE_TYPE_BYTE_STRING.
10243  */
10244 enum FILE_ATTRIBUTE_TRASH_ORIG_PATH = "trash::orig-path";
10245 alias G_FILE_ATTRIBUTE_TRASH_ORIG_PATH = FILE_ATTRIBUTE_TRASH_ORIG_PATH;
10246 
10247 /**
10248  * A key in the "unix" namespace for getting the number of blocks allocated
10249  * for the file. This attribute is only available for UNIX file systems.
10250  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT64.
10251  */
10252 enum FILE_ATTRIBUTE_UNIX_BLOCKS = "unix::blocks";
10253 alias G_FILE_ATTRIBUTE_UNIX_BLOCKS = FILE_ATTRIBUTE_UNIX_BLOCKS;
10254 
10255 /**
10256  * A key in the "unix" namespace for getting the block size for the file
10257  * system. This attribute is only available for UNIX file systems.
10258  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT32.
10259  */
10260 enum FILE_ATTRIBUTE_UNIX_BLOCK_SIZE = "unix::block-size";
10261 alias G_FILE_ATTRIBUTE_UNIX_BLOCK_SIZE = FILE_ATTRIBUTE_UNIX_BLOCK_SIZE;
10262 
10263 /**
10264  * A key in the "unix" namespace for getting the device id of the device the
10265  * file is located on (see stat() documentation). This attribute is only
10266  * available for UNIX file systems. Corresponding #GFileAttributeType is
10267  * %G_FILE_ATTRIBUTE_TYPE_UINT32.
10268  */
10269 enum FILE_ATTRIBUTE_UNIX_DEVICE = "unix::device";
10270 alias G_FILE_ATTRIBUTE_UNIX_DEVICE = FILE_ATTRIBUTE_UNIX_DEVICE;
10271 
10272 /**
10273  * A key in the "unix" namespace for getting the group ID for the file.
10274  * This attribute is only available for UNIX file systems.
10275  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT32.
10276  */
10277 enum FILE_ATTRIBUTE_UNIX_GID = "unix::gid";
10278 alias G_FILE_ATTRIBUTE_UNIX_GID = FILE_ATTRIBUTE_UNIX_GID;
10279 
10280 /**
10281  * A key in the "unix" namespace for getting the inode of the file.
10282  * This attribute is only available for UNIX file systems. Corresponding
10283  * #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT64.
10284  */
10285 enum FILE_ATTRIBUTE_UNIX_INODE = "unix::inode";
10286 alias G_FILE_ATTRIBUTE_UNIX_INODE = FILE_ATTRIBUTE_UNIX_INODE;
10287 
10288 /**
10289  * A key in the "unix" namespace for checking if the file represents a
10290  * UNIX mount point. This attribute is %TRUE if the file is a UNIX mount
10291  * point. Since 2.58, `/` is considered to be a mount point.
10292  * This attribute is only available for UNIX file systems.
10293  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
10294  */
10295 enum FILE_ATTRIBUTE_UNIX_IS_MOUNTPOINT = "unix::is-mountpoint";
10296 alias G_FILE_ATTRIBUTE_UNIX_IS_MOUNTPOINT = FILE_ATTRIBUTE_UNIX_IS_MOUNTPOINT;
10297 
10298 /**
10299  * A key in the "unix" namespace for getting the mode of the file
10300  * (e.g. whether the file is a regular file, symlink, etc). See the
10301  * documentation for `lstat()`: this attribute is equivalent to the `st_mode`
10302  * member of `struct stat`, and includes both the file type and permissions.
10303  * This attribute is only available for UNIX file systems.
10304  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT32.
10305  */
10306 enum FILE_ATTRIBUTE_UNIX_MODE = "unix::mode";
10307 alias G_FILE_ATTRIBUTE_UNIX_MODE = FILE_ATTRIBUTE_UNIX_MODE;
10308 
10309 /**
10310  * A key in the "unix" namespace for getting the number of hard links
10311  * for a file. See lstat() documentation. This attribute is only available
10312  * for UNIX file systems. Corresponding #GFileAttributeType is
10313  * %G_FILE_ATTRIBUTE_TYPE_UINT32.
10314  */
10315 enum FILE_ATTRIBUTE_UNIX_NLINK = "unix::nlink";
10316 alias G_FILE_ATTRIBUTE_UNIX_NLINK = FILE_ATTRIBUTE_UNIX_NLINK;
10317 
10318 /**
10319  * A key in the "unix" namespace for getting the device ID for the file
10320  * (if it is a special file). See lstat() documentation. This attribute
10321  * is only available for UNIX file systems. Corresponding #GFileAttributeType
10322  * is %G_FILE_ATTRIBUTE_TYPE_UINT32.
10323  */
10324 enum FILE_ATTRIBUTE_UNIX_RDEV = "unix::rdev";
10325 alias G_FILE_ATTRIBUTE_UNIX_RDEV = FILE_ATTRIBUTE_UNIX_RDEV;
10326 
10327 /**
10328  * A key in the "unix" namespace for getting the user ID for the file.
10329  * This attribute is only available for UNIX file systems.
10330  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT32.
10331  */
10332 enum FILE_ATTRIBUTE_UNIX_UID = "unix::uid";
10333 alias G_FILE_ATTRIBUTE_UNIX_UID = FILE_ATTRIBUTE_UNIX_UID;
10334 
10335 /**
10336  * Extension point for memory usage monitoring functionality.
10337  * See [Extending GIO][extending-gio].
10338  */
10339 enum MEMORY_MONITOR_EXTENSION_POINT_NAME = "gio-memory-monitor";
10340 alias G_MEMORY_MONITOR_EXTENSION_POINT_NAME = MEMORY_MONITOR_EXTENSION_POINT_NAME;
10341 
10342 /**
10343  * The menu item attribute which holds the action name of the item.  Action
10344  * names are namespaced with an identifier for the action group in which the
10345  * action resides. For example, "win." for window-specific actions and "app."
10346  * for application-wide actions.
10347  *
10348  * See also g_menu_model_get_item_attribute() and g_menu_item_set_attribute().
10349  */
10350 enum MENU_ATTRIBUTE_ACTION = "action";
10351 alias G_MENU_ATTRIBUTE_ACTION = MENU_ATTRIBUTE_ACTION;
10352 
10353 /**
10354  * The menu item attribute that holds the namespace for all action names in
10355  * menus that are linked from this item.
10356  */
10357 enum MENU_ATTRIBUTE_ACTION_NAMESPACE = "action-namespace";
10358 alias G_MENU_ATTRIBUTE_ACTION_NAMESPACE = MENU_ATTRIBUTE_ACTION_NAMESPACE;
10359 
10360 /**
10361  * The menu item attribute which holds the icon of the item.
10362  *
10363  * The icon is stored in the format returned by g_icon_serialize().
10364  *
10365  * This attribute is intended only to represent 'noun' icons such as
10366  * favicons for a webpage, or application icons.  It should not be used
10367  * for 'verbs' (ie: stock icons).
10368  */
10369 enum MENU_ATTRIBUTE_ICON = "icon";
10370 alias G_MENU_ATTRIBUTE_ICON = MENU_ATTRIBUTE_ICON;
10371 
10372 /**
10373  * The menu item attribute which holds the label of the item.
10374  */
10375 enum MENU_ATTRIBUTE_LABEL = "label";
10376 alias G_MENU_ATTRIBUTE_LABEL = MENU_ATTRIBUTE_LABEL;
10377 
10378 /**
10379  * The menu item attribute which holds the target with which the item's action
10380  * will be activated.
10381  *
10382  * See also g_menu_item_set_action_and_target()
10383  */
10384 enum MENU_ATTRIBUTE_TARGET = "target";
10385 alias G_MENU_ATTRIBUTE_TARGET = MENU_ATTRIBUTE_TARGET;
10386 
10387 /**
10388  * The name of the link that associates a menu item with a section.  The linked
10389  * menu will usually be shown in place of the menu item, using the item's label
10390  * as a header.
10391  *
10392  * See also g_menu_item_set_link().
10393  */
10394 enum MENU_LINK_SECTION = "section";
10395 alias G_MENU_LINK_SECTION = MENU_LINK_SECTION;
10396 
10397 /**
10398  * The name of the link that associates a menu item with a submenu.
10399  *
10400  * See also g_menu_item_set_link().
10401  */
10402 enum MENU_LINK_SUBMENU = "submenu";
10403 alias G_MENU_LINK_SUBMENU = MENU_LINK_SUBMENU;
10404 
10405 enum NATIVE_VOLUME_MONITOR_EXTENSION_POINT_NAME = "gio-native-volume-monitor";
10406 alias G_NATIVE_VOLUME_MONITOR_EXTENSION_POINT_NAME = NATIVE_VOLUME_MONITOR_EXTENSION_POINT_NAME;
10407 
10408 /**
10409  * Extension point for network status monitoring functionality.
10410  * See [Extending GIO][extending-gio].
10411  */
10412 enum NETWORK_MONITOR_EXTENSION_POINT_NAME = "gio-network-monitor";
10413 alias G_NETWORK_MONITOR_EXTENSION_POINT_NAME = NETWORK_MONITOR_EXTENSION_POINT_NAME;
10414 
10415 /**
10416  * Extension point for proxy functionality.
10417  * See [Extending GIO][extending-gio].
10418  */
10419 enum PROXY_EXTENSION_POINT_NAME = "gio-proxy";
10420 alias G_PROXY_EXTENSION_POINT_NAME = PROXY_EXTENSION_POINT_NAME;
10421 
10422 /**
10423  * Extension point for proxy resolving functionality.
10424  * See [Extending GIO][extending-gio].
10425  */
10426 enum PROXY_RESOLVER_EXTENSION_POINT_NAME = "gio-proxy-resolver";
10427 alias G_PROXY_RESOLVER_EXTENSION_POINT_NAME = PROXY_RESOLVER_EXTENSION_POINT_NAME;
10428 
10429 /**
10430  * Extension point for #GSettingsBackend functionality.
10431  */
10432 enum SETTINGS_BACKEND_EXTENSION_POINT_NAME = "gsettings-backend";
10433 alias G_SETTINGS_BACKEND_EXTENSION_POINT_NAME = SETTINGS_BACKEND_EXTENSION_POINT_NAME;
10434 
10435 /**
10436  * Extension point for TLS functionality via #GTlsBackend.
10437  * See [Extending GIO][extending-gio].
10438  */
10439 enum TLS_BACKEND_EXTENSION_POINT_NAME = "gio-tls-backend";
10440 alias G_TLS_BACKEND_EXTENSION_POINT_NAME = TLS_BACKEND_EXTENSION_POINT_NAME;
10441 
10442 /**
10443  * The purpose used to verify the client certificate in a TLS connection.
10444  * Used by TLS servers.
10445  */
10446 enum TLS_DATABASE_PURPOSE_AUTHENTICATE_CLIENT = "1.3.6.1.5.5.7.3.2";
10447 alias G_TLS_DATABASE_PURPOSE_AUTHENTICATE_CLIENT = TLS_DATABASE_PURPOSE_AUTHENTICATE_CLIENT;
10448 
10449 /**
10450  * The purpose used to verify the server certificate in a TLS connection. This
10451  * is the most common purpose in use. Used by TLS clients.
10452  */
10453 enum TLS_DATABASE_PURPOSE_AUTHENTICATE_SERVER = "1.3.6.1.5.5.7.3.1";
10454 alias G_TLS_DATABASE_PURPOSE_AUTHENTICATE_SERVER = TLS_DATABASE_PURPOSE_AUTHENTICATE_SERVER;
10455 
10456 /**
10457  * Extension point for #GVfs functionality.
10458  * See [Extending GIO][extending-gio].
10459  */
10460 enum VFS_EXTENSION_POINT_NAME = "gio-vfs";
10461 alias G_VFS_EXTENSION_POINT_NAME = VFS_EXTENSION_POINT_NAME;
10462 
10463 /**
10464  * The string used to obtain the volume class with g_volume_get_identifier().
10465  *
10466  * Known volume classes include `device`, `network`, and `loop`. Other
10467  * classes may be added in the future.
10468  *
10469  * This is intended to be used by applications to classify #GVolume
10470  * instances into different sections - for example a file manager or
10471  * file chooser can use this information to show `network` volumes under
10472  * a "Network" heading and `device` volumes under a "Devices" heading.
10473  */
10474 enum VOLUME_IDENTIFIER_KIND_CLASS = "class";
10475 alias G_VOLUME_IDENTIFIER_KIND_CLASS = VOLUME_IDENTIFIER_KIND_CLASS;
10476 
10477 /**
10478  * The string used to obtain a Hal UDI with g_volume_get_identifier().
10479  *
10480  * Deprecated: Do not use, HAL is deprecated.
10481  */
10482 enum VOLUME_IDENTIFIER_KIND_HAL_UDI = "hal-udi";
10483 alias G_VOLUME_IDENTIFIER_KIND_HAL_UDI = VOLUME_IDENTIFIER_KIND_HAL_UDI;
10484 
10485 /**
10486  * The string used to obtain a filesystem label with g_volume_get_identifier().
10487  */
10488 enum VOLUME_IDENTIFIER_KIND_LABEL = "label";
10489 alias G_VOLUME_IDENTIFIER_KIND_LABEL = VOLUME_IDENTIFIER_KIND_LABEL;
10490 
10491 /**
10492  * The string used to obtain a NFS mount with g_volume_get_identifier().
10493  */
10494 enum VOLUME_IDENTIFIER_KIND_NFS_MOUNT = "nfs-mount";
10495 alias G_VOLUME_IDENTIFIER_KIND_NFS_MOUNT = VOLUME_IDENTIFIER_KIND_NFS_MOUNT;
10496 
10497 /**
10498  * The string used to obtain a Unix device path with g_volume_get_identifier().
10499  */
10500 enum VOLUME_IDENTIFIER_KIND_UNIX_DEVICE = "unix-device";
10501 alias G_VOLUME_IDENTIFIER_KIND_UNIX_DEVICE = VOLUME_IDENTIFIER_KIND_UNIX_DEVICE;
10502 
10503 /**
10504  * The string used to obtain a UUID with g_volume_get_identifier().
10505  */
10506 enum VOLUME_IDENTIFIER_KIND_UUID = "uuid";
10507 alias G_VOLUME_IDENTIFIER_KIND_UUID = VOLUME_IDENTIFIER_KIND_UUID;
10508 
10509 /**
10510  * Extension point for volume monitor functionality.
10511  * See [Extending GIO][extending-gio].
10512  */
10513 enum VOLUME_MONITOR_EXTENSION_POINT_NAME = "gio-volume-monitor";
10514 alias G_VOLUME_MONITOR_EXTENSION_POINT_NAME = VOLUME_MONITOR_EXTENSION_POINT_NAME;