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