• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1diff --git a/config.h b/config.h
2new file mode 100644
3index 0000000..da224eb
4--- /dev/null
5+++ b/config.h
6@@ -0,0 +1,428 @@
7+/*
8+ * Autogenerated by the Meson build system.
9+ * Do not edit, your changes will be lost.
10+ */
11+
12+#pragma once
13+
14+#define ALIGNOF_GUINT32 4
15+
16+#define ALIGNOF_GUINT64 8
17+
18+#ifdef __LP64__
19+#define ALIGNOF_UNSIGNED_LONG 8
20+
21+#define DBL_EXPBIT0_BIT 20
22+
23+#define DBL_EXPBIT0_WORD 1
24+#else
25+#define ALIGNOF_UNSIGNED_LONG 4
26+#endif
27+
28+#ifndef OHOS_OPT_COMPAT
29+/* ohos.opt.compat.001:
30+ * Remove dependency to gettext
31+ */
32+#define ENABLE_NLS 1
33+#endif
34+
35+#define EXEEXT
36+
37+#define GETTEXT_PACKAGE "glib20"
38+
39+#define GLIB_BINARY_AGE 7202
40+
41+#define GLIB_INTERFACE_AGE 2
42+
43+#define GLIB_LOCALE_DIR "/usr/local/share/locale"
44+
45+#define GLIB_MAJOR_VERSION 2
46+
47+#define GLIB_MICRO_VERSION 2
48+
49+#define GLIB_MINOR_VERSION 72
50+
51+#define G_VA_COPY va_copy
52+
53+#define G_VA_COPY_AS_ARRAY 1
54+
55+#define HAVE_ALLOCA_H 1
56+
57+#define HAVE_BIND_TEXTDOMAIN_CODESET
58+
59+#undef HAVE_C99_SNPRINTF
60+
61+#undef HAVE_C99_VSNPRINTF
62+
63+#define HAVE_CLOCK_GETTIME 1
64+
65+#define HAVE_CODESET 1
66+
67+#define HAVE_DCGETTEXT 1
68+
69+#define HAVE_DIRENT_H 1
70+
71+#define HAVE_DN_COMP 1
72+
73+#define HAVE_ENDMNTENT 1
74+
75+#define HAVE_ENDSERVENT 1
76+
77+#define HAVE_EPOLL_CREATE 1
78+
79+#define HAVE_EVENTFD 1
80+
81+#define HAVE_FALLOCATE 1
82+
83+#define HAVE_FCHMOD 1
84+
85+#define HAVE_FCHOWN 1
86+
87+#define HAVE_FLOAT_H 1
88+
89+#define HAVE_FSTAB_H 1
90+
91+#define HAVE_FSYNC 1
92+
93+#define HAVE_FUTEX 1
94+
95+#define HAVE_GETAUXVAL 1
96+
97+#define HAVE_GETC_UNLOCKED 1
98+
99+#define HAVE_GETGRGID_R 1
100+
101+#define HAVE_GETMNTENT_R 1
102+
103+#define HAVE_GETPWUID_R 1
104+
105+#define HAVE_GETRESUID 1
106+
107+#define HAVE_GETTEXT 1
108+
109+#define HAVE_GMTIME_R 1
110+
111+#define HAVE_GRP_H 1
112+
113+#define HAVE_HASMNTOPT 1
114+
115+#define HAVE_IF_INDEXTONAME 1
116+
117+#define HAVE_IF_NAMETOINDEX 1
118+
119+#define HAVE_INOTIFY_INIT1 1
120+
121+#define HAVE_INTMAX_T 1
122+
123+#define HAVE_INTTYPES_H 1
124+
125+#define HAVE_INTTYPES_H_WITH_UINTMAX 1
126+
127+#define HAVE_IPV6
128+
129+#define HAVE_IP_MREQN 1
130+
131+#define HAVE_LANGINFO_CODESET 1
132+
133+#define HAVE_LANGINFO_TIME 1
134+
135+#define HAVE_LCHOWN 1
136+
137+#define HAVE_LC_MESSAGES 1
138+
139+#undef HAVE_LIBMOUNT
140+
141+#define HAVE_LIMITS_H 1
142+
143+#define HAVE_LINK 1
144+
145+#define HAVE_LOCALE_H 1
146+
147+#define HAVE_LOCALTIME_R 1
148+
149+#define HAVE_LONG_DOUBLE 1
150+
151+#define HAVE_LONG_LONG 1
152+
153+#define HAVE_LSTAT 1
154+
155+#define HAVE_MALLOC_H 1
156+
157+#define HAVE_MBRTOWC 1
158+
159+#define HAVE_MEMALIGN 1
160+
161+#define HAVE_MEMORY_H 1
162+
163+#define HAVE_MKOSTEMP 1
164+
165+#define HAVE_MMAP 1
166+
167+#define HAVE_MNTENT_H 1
168+
169+#define HAVE_NETLINK 1
170+
171+#define HAVE_NEWLOCALE 1
172+
173+#define HAVE_OPEN_O_DIRECTORY 1
174+
175+#define HAVE_PIPE2 1
176+
177+#define HAVE_POLL 1
178+
179+#define HAVE_POLL_H 1
180+
181+#define HAVE_POSIX_MEMALIGN 1
182+
183+#define HAVE_POSIX_SPAWN 1
184+
185+#define HAVE_PRLIMIT 1
186+
187+#define HAVE_PROC_SELF_CMDLINE
188+
189+#define HAVE_PTHREAD_ATTR_SETINHERITSCHED 1
190+
191+#define HAVE_PTHREAD_ATTR_SETSTACKSIZE 1
192+
193+#define HAVE_PTHREAD_CONDATTR_SETCLOCK 1
194+
195+#define HAVE_PTHREAD_GETNAME_NP 1
196+
197+#define HAVE_PTHREAD_SETNAME_NP_WITH_TID 1
198+
199+#define HAVE_PTRDIFF_T 1
200+
201+#define HAVE_PWD_H 1
202+
203+#define HAVE_READLINK 1
204+
205+#define HAVE_RECVMMSG 1
206+
207+#define HAVE_RES_NCLOSE 1
208+
209+#define HAVE_RES_NINIT 1
210+
211+#define HAVE_RTLD_GLOBAL 1
212+
213+#define HAVE_RTLD_LAZY 1
214+
215+#define HAVE_RTLD_NEXT 1
216+
217+#define HAVE_RTLD_NOW 1
218+
219+#define HAVE_SCHED_H 1
220+
221+#undef HAVE_SELINUX
222+
223+#define HAVE_SENDMMSG 1
224+
225+#define HAVE_SETENV 1
226+
227+#define HAVE_SETMNTENT 1
228+
229+#define HAVE_SIG_ATOMIC_T 1
230+
231+#define HAVE_SIOCGIFADDR /**/
232+
233+#define HAVE_SNPRINTF 1
234+
235+#define HAVE_SPAWN_H 1
236+
237+#define HAVE_SPLICE 1
238+
239+#define HAVE_STATFS 1
240+
241+#define HAVE_STATVFS 1
242+
243+#define HAVE_STDATOMIC_H 1
244+
245+#define HAVE_STDINT_H 1
246+
247+#define HAVE_STDINT_H_WITH_UINTMAX 1
248+
249+#define HAVE_STDLIB_H 1
250+
251+#define HAVE_STPCPY 1
252+
253+#define HAVE_STRCASECMP 1
254+
255+#define HAVE_STRERROR_R 1
256+
257+#define HAVE_STRINGS_H 1
258+
259+#define HAVE_STRING_H 1
260+
261+#define HAVE_STRNCASECMP 1
262+
263+#define HAVE_STRNLEN 1
264+
265+#define HAVE_STRSIGNAL 1
266+
267+#define HAVE_STRTOD_L 1
268+
269+#define HAVE_STRTOLL_L 1
270+
271+#define HAVE_STRTOULL_L 1
272+
273+#define HAVE_STRUCT_DIRENT_D_TYPE 1
274+
275+#define HAVE_STRUCT_STATFS_F_BAVAIL 1
276+
277+#define HAVE_STRUCT_STAT_ST_ATIM_TV_NSEC 1
278+
279+#define HAVE_STRUCT_STAT_ST_BLKSIZE 1
280+
281+#define HAVE_STRUCT_STAT_ST_BLOCKS 1
282+
283+#define HAVE_STRUCT_STAT_ST_CTIM_TV_NSEC 1
284+
285+#define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 1
286+
287+#define HAVE_STRUCT_TM_TM_GMTOFF 1
288+
289+#define HAVE_SYMLINK 1
290+
291+#undef HAVE_SYSPROF
292+
293+#define HAVE_SYS_AUXV_H 1
294+
295+#define HAVE_SYS_INOTIFY_H 1
296+
297+#define HAVE_SYS_MOUNT_H 1
298+
299+#define HAVE_SYS_PARAM_H 1
300+
301+#define HAVE_SYS_RESOURCE_H 1
302+
303+#define HAVE_SYS_SCHED_GETATTR 1
304+
305+#define HAVE_SYS_SELECT_H 1
306+
307+#define HAVE_SYS_STATFS_H 1
308+
309+#define HAVE_SYS_STATVFS_H 1
310+
311+#define HAVE_SYS_STAT_H 1
312+
313+#define HAVE_SYS_SYSCTL_H 1
314+
315+#define HAVE_SYS_TIMES_H 1
316+
317+#define HAVE_SYS_TIME_H 1
318+
319+#define HAVE_SYS_TYPES_H 1
320+
321+#define HAVE_SYS_UIO_H 1
322+
323+#define HAVE_SYS_VFS_H 1
324+
325+#define HAVE_SYS_WAIT_H 1
326+
327+#define HAVE_SYS_XATTR_H 1
328+
329+#define HAVE_TERMIOS_H 1
330+
331+#define HAVE_TIMEGM 1
332+
333+#define HAVE_UINT128_T 1
334+
335+#define HAVE_UNISTD_H 1
336+
337+#undef HAVE_UNIX98_PRINTF
338+
339+#define HAVE_UNSETENV 1
340+
341+#define HAVE_UTIMES 1
342+
343+#define HAVE_VALLOC 1
344+
345+#define HAVE_VALUES_H 1
346+
347+#define HAVE_VASPRINTF 1
348+
349+#define HAVE_VSNPRINTF 1
350+
351+#define HAVE_WCHAR_H 1
352+
353+#define HAVE_WCHAR_T 1
354+
355+#define HAVE_WCRTOMB 1
356+
357+#define HAVE_WCSLEN 1
358+
359+#define HAVE_WCSNLEN 1
360+
361+#define HAVE_WINT_T 1
362+
363+#define HAVE_XATTR 1
364+
365+#define MAJOR_IN_SYSMACROS 1
366+
367+#define PACKAGE_BUGREPORT "https://gitlab.gnome.org/GNOME/glib/issues/new"
368+
369+#define PACKAGE_NAME "glib"
370+
371+#define PACKAGE_STRING "glib 2.72.2"
372+
373+#define PACKAGE_TARNAME "glib"
374+
375+#define PACKAGE_URL ""
376+
377+#define PACKAGE_VERSION "2.72.2"
378+
379+#define SIZEOF_CHAR 1
380+
381+#define SIZEOF_INT 4
382+
383+#ifdef __LP64__
384+#define SIZEOF_LONG 8
385+#else
386+#define SIZEOF_LONG 4
387+#endif
388+
389+#define SIZEOF_LONG_LONG 8
390+
391+#define SIZEOF_SHORT 2
392+
393+#ifdef __LP64__
394+#define SIZEOF_SIZE_T 8
395+
396+#define SIZEOF_SSIZE_T 8
397+
398+#define SIZEOF_VOID_P 8
399+#else
400+#define SIZEOF_SIZE_T 4
401+
402+#define SIZEOF_SSIZE_T 4
403+
404+#define SIZEOF_VOID_P 4
405+#endif
406+
407+#define SIZEOF_WCHAR_T 4
408+
409+#define STATFS_ARGS 2
410+
411+#ifndef OHOS_OPT_COMPAT
412+/*
413+ * OHOS_OPT_COMPAT.0026
414+ * strerror_r return null in RK platform, resulting in abnormal process
415+ */
416+#define STRERROR_R_CHAR_P 1  // Defined if strerror_r returns char *
417+#endif
418+
419+#define THREADS_POSIX 1
420+
421+#define USE_STATFS 1
422+
423+#undef USE_SYSTEM_PCRE
424+
425+#define USE_SYSTEM_PRINTF
426+
427+#define _GLIB_EXTERN __attribute__((visibility("default"))) extern
428+
429+#define _GNU_SOURCE 1
430+
431+#define gl_extern_inline
432+
433+#define gl_unused
434+
435diff --git a/gio/gconstructor_as_data.h b/gio/gconstructor_as_data.h
436new file mode 100644
437index 0000000..b447ff5
438--- /dev/null
439+++ b/gio/gconstructor_as_data.h
440@@ -0,0 +1 @@
441+const char gconstructor_code[] = "\x2f\x2a\x20\x47\x4c\x49\x42\x20\x2d\x20\x4c\x69\x62\x72\x61\x72\x79\x20\x6f\x66\x20\x75\x73\x65\x66\x75\x6c\x20\x72\x6f\x75\x74\x69\x6e\x65\x73\x20\x66\x6f\x72\x20\x43\x20\x70\x72\x6f\x67\x72\x61\x6d\x6d\x69\x6e\x67\x0a\x20\x2a\x20\x43\x6f\x70\x79\x72\x69\x67\x68\x74\x20\x28\x43\x29\x20\x31\x39\x39\x35\x2d\x31\x39\x39\x37\x20\x20\x50\x65\x74\x65\x72\x20\x4d\x61\x74\x74\x69\x73\x2c\x20\x53\x70\x65\x6e\x63\x65\x72\x20\x4b\x69\x6d\x62\x61\x6c\x6c\x20\x61\x6e\x64\x20\x4a\x6f\x73\x68\x20\x4d\x61\x63\x44\x6f\x6e\x61\x6c\x64\x0a\x20\x2a\x0a\x20\x2a\x20\x54\x68\x69\x73\x20\x6c\x69\x62\x72\x61\x72\x79\x20\x69\x73\x20\x66\x72\x65\x65\x20\x73\x6f\x66\x74\x77\x61\x72\x65\x3b\x20\x79\x6f\x75\x20\x63\x61\x6e\x20\x72\x65\x64\x69\x73\x74\x72\x69\x62\x75\x74\x65\x20\x69\x74\x20\x61\x6e\x64\x2f\x6f\x72\x0a\x20\x2a\x20\x6d\x6f\x64\x69\x66\x79\x20\x69\x74\x20\x75\x6e\x64\x65\x72\x20\x74\x68\x65\x20\x74\x65\x72\x6d\x73\x20\x6f\x66\x20\x74\x68\x65\x20\x47\x4e\x55\x20\x4c\x65\x73\x73\x65\x72\x20\x47\x65\x6e\x65\x72\x61\x6c\x20\x50\x75\x62\x6c\x69\x63\x0a\x20\x2a\x20\x4c\x69\x63\x65\x6e\x73\x65\x20\x61\x73\x20\x70\x75\x62\x6c\x69\x73\x68\x65\x64\x20\x62\x79\x20\x74\x68\x65\x20\x46\x72\x65\x65\x20\x53\x6f\x66\x74\x77\x61\x72\x65\x20\x46\x6f\x75\x6e\x64\x61\x74\x69\x6f\x6e\x3b\x20\x65\x69\x74\x68\x65\x72\x0a\x20\x2a\x20\x76\x65\x72\x73\x69\x6f\x6e\x20\x32\x2e\x31\x20\x6f\x66\x20\x74\x68\x65\x20\x4c\x69\x63\x65\x6e\x73\x65\x2c\x20\x6f\x72\x20\x28\x61\x74\x20\x79\x6f\x75\x72\x20\x6f\x70\x74\x69\x6f\x6e\x29\x20\x61\x6e\x79\x20\x6c\x61\x74\x65\x72\x20\x76\x65\x72\x73\x69\x6f\x6e\x2e\x0a\x20\x2a\x0a\x20\x2a\x20\x54\x68\x69\x73\x20\x6c\x69\x62\x72\x61\x72\x79\x20\x69\x73\x20\x64\x69\x73\x74\x72\x69\x62\x75\x74\x65\x64\x20\x69\x6e\x20\x74\x68\x65\x20\x68\x6f\x70\x65\x20\x74\x68\x61\x74\x20\x69\x74\x20\x77\x69\x6c\x6c\x20\x62\x65\x20\x75\x73\x65\x66\x75\x6c\x2c\x0a\x20\x2a\x20\x62\x75\x74\x20\x57\x49\x54\x48\x4f\x55\x54\x20\x41\x4e\x59\x20\x57\x41\x52\x52\x41\x4e\x54\x59\x3b\x20\x77\x69\x74\x68\x6f\x75\x74\x20\x65\x76\x65\x6e\x20\x74\x68\x65\x20\x69\x6d\x70\x6c\x69\x65\x64\x20\x77\x61\x72\x72\x61\x6e\x74\x79\x20\x6f\x66\x0a\x20\x2a\x20\x4d\x45\x52\x43\x48\x41\x4e\x54\x41\x42\x49\x4c\x49\x54\x59\x20\x6f\x72\x20\x46\x49\x54\x4e\x45\x53\x53\x20\x46\x4f\x52\x20\x41\x20\x50\x41\x52\x54\x49\x43\x55\x4c\x41\x52\x20\x50\x55\x52\x50\x4f\x53\x45\x2e\x09\x20\x53\x65\x65\x20\x74\x68\x65\x20\x47\x4e\x55\x0a\x20\x2a\x20\x4c\x65\x73\x73\x65\x72\x20\x47\x65\x6e\x65\x72\x61\x6c\x20\x50\x75\x62\x6c\x69\x63\x20\x4c\x69\x63\x65\x6e\x73\x65\x20\x66\x6f\x72\x20\x6d\x6f\x72\x65\x20\x64\x65\x74\x61\x69\x6c\x73\x2e\x0a\x20\x2a\x0a\x20\x2a\x20\x59\x6f\x75\x20\x73\x68\x6f\x75\x6c\x64\x20\x68\x61\x76\x65\x20\x72\x65\x63\x65\x69\x76\x65\x64\x20\x61\x20\x63\x6f\x70\x79\x20\x6f\x66\x20\x74\x68\x65\x20\x47\x4e\x55\x20\x4c\x65\x73\x73\x65\x72\x20\x47\x65\x6e\x65\x72\x61\x6c\x20\x50\x75\x62\x6c\x69\x63\x0a\x20\x2a\x20\x4c\x69\x63\x65\x6e\x73\x65\x20\x61\x6c\x6f\x6e\x67\x20\x77\x69\x74\x68\x20\x74\x68\x69\x73\x20\x6c\x69\x62\x72\x61\x72\x79\x3b\x20\x69\x66\x20\x6e\x6f\x74\x2c\x20\x73\x65\x65\x20\x3c\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x67\x6e\x75\x2e\x6f\x72\x67\x2f\x6c\x69\x63\x65\x6e\x73\x65\x73\x2f\x3e\x2e\x0a\x20\x2a\x2f\x0a\x0a\x2f\x2a\x0a\x20\x2a\x20\x4d\x6f\x64\x69\x66\x69\x65\x64\x20\x62\x79\x20\x74\x68\x65\x20\x47\x4c\x69\x62\x20\x54\x65\x61\x6d\x20\x61\x6e\x64\x20\x6f\x74\x68\x65\x72\x73\x20\x31\x39\x39\x37\x2d\x32\x30\x30\x30\x2e\x20\x20\x53\x65\x65\x20\x74\x68\x65\x20\x41\x55\x54\x48\x4f\x52\x53\x0a\x20\x2a\x20\x66\x69\x6c\x65\x20\x66\x6f\x72\x20\x61\x20\x6c\x69\x73\x74\x20\x6f\x66\x20\x70\x65\x6f\x70\x6c\x65\x20\x6f\x6e\x20\x74\x68\x65\x20\x47\x4c\x69\x62\x20\x54\x65\x61\x6d\x2e\x20\x20\x53\x65\x65\x20\x74\x68\x65\x20\x43\x68\x61\x6e\x67\x65\x4c\x6f\x67\x0a\x20\x2a\x20\x66\x69\x6c\x65\x73\x20\x66\x6f\x72\x20\x61\x20\x6c\x69\x73\x74\x20\x6f\x66\x20\x63\x68\x61\x6e\x67\x65\x73\x2e\x20\x20\x54\x68\x65\x73\x65\x20\x66\x69\x6c\x65\x73\x20\x61\x72\x65\x20\x64\x69\x73\x74\x72\x69\x62\x75\x74\x65\x64\x20\x77\x69\x74\x68\x0a\x20\x2a\x20\x47\x4c\x69\x62\x20\x61\x74\x20\x66\x74\x70\x3a\x2f\x2f\x66\x74\x70\x2e\x67\x74\x6b\x2e\x6f\x72\x67\x2f\x70\x75\x62\x2f\x67\x74\x6b\x2f\x2e\x0a\x20\x2a\x2f\x0a\x0a\x23\x69\x66\x6e\x64\x65\x66\x20\x5f\x5f\x47\x5f\x43\x4f\x4e\x53\x54\x52\x55\x43\x54\x4f\x52\x5f\x48\x5f\x5f\x0a\x23\x64\x65\x66\x69\x6e\x65\x20\x5f\x5f\x47\x5f\x43\x4f\x4e\x53\x54\x52\x55\x43\x54\x4f\x52\x5f\x48\x5f\x5f\x0a\x0a\x2f\x2a\x0a\x20\x20\x49\x66\x20\x47\x5f\x48\x41\x53\x5f\x43\x4f\x4e\x53\x54\x52\x55\x43\x54\x4f\x52\x53\x20\x69\x73\x20\x74\x72\x75\x65\x20\x74\x68\x65\x6e\x20\x74\x68\x65\x20\x63\x6f\x6d\x70\x69\x6c\x65\x72\x20\x73\x75\x70\x70\x6f\x72\x74\x20\x2a\x62\x6f\x74\x68\x2a\x20\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x6f\x72\x73\x20\x61\x6e\x64\x0a\x20\x20\x64\x65\x73\x74\x72\x75\x63\x74\x6f\x72\x73\x2c\x20\x69\x6e\x20\x61\x20\x75\x73\x61\x62\x6c\x65\x20\x77\x61\x79\x2c\x20\x69\x6e\x63\x6c\x75\x64\x69\x6e\x67\x20\x65\x2e\x67\x2e\x20\x6f\x6e\x20\x6c\x69\x62\x72\x61\x72\x79\x20\x75\x6e\x6c\x6f\x61\x64\x2e\x20\x49\x66\x20\x6e\x6f\x74\x20\x79\x6f\x75\x27\x72\x65\x20\x6f\x6e\x0a\x20\x20\x79\x6f\x75\x72\x20\x6f\x77\x6e\x2e\x0a\x0a\x20\x20\x53\x6f\x6d\x65\x20\x63\x6f\x6d\x70\x69\x6c\x65\x72\x73\x20\x6e\x65\x65\x64\x20\x23\x70\x72\x61\x67\x6d\x61\x20\x74\x6f\x20\x68\x61\x6e\x64\x6c\x65\x20\x74\x68\x69\x73\x2c\x20\x77\x68\x69\x63\x68\x20\x64\x6f\x65\x73\x20\x6e\x6f\x74\x20\x77\x6f\x72\x6b\x20\x77\x69\x74\x68\x20\x6d\x61\x63\x72\x6f\x73\x2c\x0a\x20\x20\x73\x6f\x20\x74\x68\x65\x20\x77\x61\x79\x20\x79\x6f\x75\x20\x6e\x65\x65\x64\x20\x74\x6f\x20\x75\x73\x65\x20\x74\x68\x69\x73\x20\x69\x73\x20\x28\x66\x6f\x72\x20\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x6f\x72\x73\x29\x3a\x0a\x0a\x20\x20\x23\x69\x66\x64\x65\x66\x20\x47\x5f\x44\x45\x46\x49\x4e\x45\x5f\x43\x4f\x4e\x53\x54\x52\x55\x43\x54\x4f\x52\x5f\x4e\x45\x45\x44\x53\x5f\x50\x52\x41\x47\x4d\x41\x0a\x20\x20\x23\x70\x72\x61\x67\x6d\x61\x20\x47\x5f\x44\x45\x46\x49\x4e\x45\x5f\x43\x4f\x4e\x53\x54\x52\x55\x43\x54\x4f\x52\x5f\x50\x52\x41\x47\x4d\x41\x5f\x41\x52\x47\x53\x28\x6d\x79\x5f\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x6f\x72\x29\x0a\x20\x20\x23\x65\x6e\x64\x69\x66\x0a\x20\x20\x47\x5f\x44\x45\x46\x49\x4e\x45\x5f\x43\x4f\x4e\x53\x54\x52\x55\x43\x54\x4f\x52\x28\x6d\x79\x5f\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x6f\x72\x29\x0a\x20\x20\x73\x74\x61\x74\x69\x63\x20\x76\x6f\x69\x64\x20\x6d\x79\x5f\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x6f\x72\x28\x76\x6f\x69\x64\x29\x20\x7b\x0a\x20\x20\x20\x2e\x2e\x2e\x0a\x20\x20\x7d\x0a\x0a\x2a\x2f\x0a\x0a\x23\x69\x66\x6e\x64\x65\x66\x20\x5f\x5f\x47\x54\x4b\x5f\x44\x4f\x43\x5f\x49\x47\x4e\x4f\x52\x45\x5f\x5f\x0a\x0a\x23\x69\x66\x20\x20\x5f\x5f\x47\x4e\x55\x43\x5f\x5f\x20\x3e\x20\x32\x20\x7c\x7c\x20\x28\x5f\x5f\x47\x4e\x55\x43\x5f\x5f\x20\x3d\x3d\x20\x32\x20\x26\x26\x20\x5f\x5f\x47\x4e\x55\x43\x5f\x4d\x49\x4e\x4f\x52\x5f\x5f\x20\x3e\x3d\x20\x37\x29\x0a\x0a\x23\x64\x65\x66\x69\x6e\x65\x20\x47\x5f\x48\x41\x53\x5f\x43\x4f\x4e\x53\x54\x52\x55\x43\x54\x4f\x52\x53\x20\x31\x0a\x0a\x23\x64\x65\x66\x69\x6e\x65\x20\x47\x5f\x44\x45\x46\x49\x4e\x45\x5f\x43\x4f\x4e\x53\x54\x52\x55\x43\x54\x4f\x52\x28\x5f\x66\x75\x6e\x63\x29\x20\x73\x74\x61\x74\x69\x63\x20\x76\x6f\x69\x64\x20\x5f\x5f\x61\x74\x74\x72\x69\x62\x75\x74\x65\x5f\x5f\x28\x28\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x6f\x72\x29\x29\x20\x5f\x66\x75\x6e\x63\x20\x28\x76\x6f\x69\x64\x29\x3b\x0a\x23\x64\x65\x66\x69\x6e\x65\x20\x47\x5f\x44\x45\x46\x49\x4e\x45\x5f\x44\x45\x53\x54\x52\x55\x43\x54\x4f\x52\x28\x5f\x66\x75\x6e\x63\x29\x20\x73\x74\x61\x74\x69\x63\x20\x76\x6f\x69\x64\x20\x5f\x5f\x61\x74\x74\x72\x69\x62\x75\x74\x65\x5f\x5f\x28\x28\x64\x65\x73\x74\x72\x75\x63\x74\x6f\x72\x29\x29\x20\x5f\x66\x75\x6e\x63\x20\x28\x76\x6f\x69\x64\x29\x3b\x0a\x0a\x23\x65\x6c\x69\x66\x20\x64\x65\x66\x69\x6e\x65\x64\x20\x28\x5f\x4d\x53\x43\x5f\x56\x45\x52\x29\x20\x26\x26\x20\x28\x5f\x4d\x53\x43\x5f\x56\x45\x52\x20\x3e\x3d\x20\x31\x35\x30\x30\x29\x0a\x2f\x2a\x20\x56\x69\x73\x75\x61\x6c\x20\x73\x74\x75\x64\x69\x6f\x20\x32\x30\x30\x38\x20\x61\x6e\x64\x20\x6c\x61\x74\x65\x72\x20\x68\x61\x73\x20\x5f\x50\x72\x61\x67\x6d\x61\x20\x2a\x2f\x0a\x0a\x2f\x2a\x0a\x20\x2a\x20\x4f\x6e\x6c\x79\x20\x74\x72\x79\x20\x74\x6f\x20\x69\x6e\x63\x6c\x75\x64\x65\x20\x67\x73\x6c\x69\x73\x74\x2e\x68\x20\x69\x66\x20\x6e\x6f\x74\x20\x61\x6c\x72\x65\x61\x64\x79\x20\x69\x6e\x63\x6c\x75\x64\x65\x64\x20\x76\x69\x61\x20\x67\x6c\x69\x62\x2e\x68\x2c\x0a\x20\x2a\x20\x73\x6f\x20\x74\x68\x61\x74\x20\x69\x74\x65\x6d\x73\x20\x75\x73\x69\x6e\x67\x20\x67\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x6f\x72\x2e\x68\x20\x6f\x75\x74\x73\x69\x64\x65\x20\x6f\x66\x20\x47\x4c\x69\x62\x20\x28\x73\x75\x63\x68\x20\x61\x73\x0a\x20\x2a\x20\x47\x52\x65\x73\x6f\x75\x72\x63\x65\x73\x29\x20\x63\x6f\x6e\x74\x69\x6e\x75\x65\x20\x74\x6f\x20\x62\x75\x69\x6c\x64\x20\x70\x72\x6f\x70\x65\x72\x6c\x79\x2e\x0a\x20\x2a\x2f\x0a\x23\x69\x66\x6e\x64\x65\x66\x20\x5f\x5f\x47\x5f\x4c\x49\x42\x5f\x48\x5f\x5f\x0a\x23\x69\x6e\x63\x6c\x75\x64\x65\x20\x22\x67\x73\x6c\x69\x73\x74\x2e\x68\x22\x0a\x23\x65\x6e\x64\x69\x66\x0a\x0a\x23\x69\x6e\x63\x6c\x75\x64\x65\x20\x3c\x73\x74\x64\x6c\x69\x62\x2e\x68\x3e\x0a\x0a\x23\x64\x65\x66\x69\x6e\x65\x20\x47\x5f\x48\x41\x53\x5f\x43\x4f\x4e\x53\x54\x52\x55\x43\x54\x4f\x52\x53\x20\x31\x0a\x0a\x2f\x2a\x20\x57\x65\x20\x64\x6f\x20\x73\x6f\x6d\x65\x20\x77\x65\x69\x72\x64\x20\x74\x68\x69\x6e\x67\x73\x20\x74\x6f\x20\x61\x76\x6f\x69\x64\x20\x74\x68\x65\x20\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x6f\x72\x73\x20\x62\x65\x69\x6e\x67\x20\x6f\x70\x74\x69\x6d\x69\x7a\x65\x64\x0a\x20\x2a\x20\x61\x77\x61\x79\x20\x6f\x6e\x20\x56\x53\x32\x30\x31\x35\x20\x69\x66\x20\x57\x68\x6f\x6c\x65\x50\x72\x6f\x67\x72\x61\x6d\x4f\x70\x74\x69\x6d\x69\x7a\x61\x74\x69\x6f\x6e\x20\x69\x73\x20\x65\x6e\x61\x62\x6c\x65\x64\x2e\x20\x46\x69\x72\x73\x74\x20\x77\x65\x0a\x20\x2a\x20\x6d\x61\x6b\x65\x20\x61\x20\x72\x65\x66\x65\x72\x65\x6e\x63\x65\x20\x74\x6f\x20\x74\x68\x65\x20\x61\x72\x72\x61\x79\x20\x66\x72\x6f\x6d\x20\x74\x68\x65\x20\x77\x72\x61\x70\x70\x65\x72\x20\x74\x6f\x20\x6d\x61\x6b\x65\x20\x73\x75\x72\x65\x20\x69\x74\x73\x0a\x20\x2a\x20\x72\x65\x66\x65\x72\x65\x6e\x63\x65\x73\x2e\x20\x54\x68\x65\x6e\x20\x77\x65\x20\x75\x73\x65\x20\x61\x20\x70\x72\x61\x67\x6d\x61\x20\x74\x6f\x20\x6d\x61\x6b\x65\x20\x73\x75\x72\x65\x20\x74\x68\x65\x20\x77\x72\x61\x70\x70\x65\x72\x20\x66\x75\x6e\x63\x74\x69\x6f\x6e\x0a\x20\x2a\x20\x73\x79\x6d\x62\x6f\x6c\x20\x69\x73\x20\x61\x6c\x77\x61\x79\x73\x20\x69\x6e\x63\x6c\x75\x64\x65\x64\x20\x61\x74\x20\x74\x68\x65\x20\x6c\x69\x6e\x6b\x20\x73\x74\x61\x67\x65\x2e\x20\x41\x6c\x73\x6f\x2c\x20\x74\x68\x65\x20\x73\x79\x6d\x62\x6f\x6c\x73\x0a\x20\x2a\x20\x6e\x65\x65\x64\x20\x74\x6f\x20\x62\x65\x20\x65\x78\x74\x65\x72\x6e\x20\x28\x62\x75\x74\x20\x6e\x6f\x74\x20\x64\x6c\x6c\x65\x78\x70\x6f\x72\x74\x29\x2c\x20\x65\x76\x65\x6e\x20\x74\x68\x6f\x75\x67\x68\x20\x74\x68\x65\x79\x20\x61\x72\x65\x20\x6e\x6f\x74\x0a\x20\x2a\x20\x72\x65\x61\x6c\x6c\x79\x20\x75\x73\x65\x64\x20\x66\x72\x6f\x6d\x20\x61\x6e\x6f\x74\x68\x65\x72\x20\x6f\x62\x6a\x65\x63\x74\x20\x66\x69\x6c\x65\x2e\x0a\x20\x2a\x2f\x0a\x0a\x2f\x2a\x20\x57\x65\x20\x6e\x65\x65\x64\x20\x74\x6f\x20\x61\x63\x63\x6f\x75\x6e\x74\x20\x66\x6f\x72\x20\x64\x69\x66\x66\x65\x72\x65\x6e\x63\x65\x73\x20\x62\x65\x74\x77\x65\x65\x6e\x20\x74\x68\x65\x20\x6d\x61\x6e\x67\x6c\x69\x6e\x67\x20\x6f\x66\x20\x73\x79\x6d\x62\x6f\x6c\x73\x0a\x20\x2a\x20\x66\x6f\x72\x20\x78\x38\x36\x20\x61\x6e\x64\x20\x78\x36\x34\x2f\x41\x52\x4d\x2f\x41\x52\x4d\x36\x34\x20\x70\x72\x6f\x67\x72\x61\x6d\x73\x2c\x20\x61\x73\x20\x73\x79\x6d\x62\x6f\x6c\x73\x20\x6f\x6e\x20\x78\x38\x36\x20\x61\x72\x65\x20\x70\x72\x65\x66\x69\x78\x65\x64\x0a\x20\x2a\x20\x77\x69\x74\x68\x20\x61\x6e\x20\x75\x6e\x64\x65\x72\x73\x63\x6f\x72\x65\x20\x62\x75\x74\x20\x73\x79\x6d\x62\x6f\x6c\x73\x20\x6f\x6e\x20\x78\x36\x34\x2f\x41\x52\x4d\x2f\x41\x52\x4d\x36\x34\x20\x61\x72\x65\x20\x6e\x6f\x74\x2e\x0a\x20\x2a\x2f\x0a\x23\x69\x66\x64\x65\x66\x20\x5f\x4d\x5f\x49\x58\x38\x36\x0a\x23\x64\x65\x66\x69\x6e\x65\x20\x47\x5f\x4d\x53\x56\x43\x5f\x53\x59\x4d\x42\x4f\x4c\x5f\x50\x52\x45\x46\x49\x58\x20\x22\x5f\x22\x0a\x23\x65\x6c\x73\x65\x0a\x23\x64\x65\x66\x69\x6e\x65\x20\x47\x5f\x4d\x53\x56\x43\x5f\x53\x59\x4d\x42\x4f\x4c\x5f\x50\x52\x45\x46\x49\x58\x20\x22\x22\x0a\x23\x65\x6e\x64\x69\x66\x0a\x0a\x23\x64\x65\x66\x69\x6e\x65\x20\x47\x5f\x44\x45\x46\x49\x4e\x45\x5f\x43\x4f\x4e\x53\x54\x52\x55\x43\x54\x4f\x52\x28\x5f\x66\x75\x6e\x63\x29\x20\x47\x5f\x4d\x53\x56\x43\x5f\x43\x54\x4f\x52\x20\x28\x5f\x66\x75\x6e\x63\x2c\x20\x47\x5f\x4d\x53\x56\x43\x5f\x53\x59\x4d\x42\x4f\x4c\x5f\x50\x52\x45\x46\x49\x58\x29\x0a\x23\x64\x65\x66\x69\x6e\x65\x20\x47\x5f\x44\x45\x46\x49\x4e\x45\x5f\x44\x45\x53\x54\x52\x55\x43\x54\x4f\x52\x28\x5f\x66\x75\x6e\x63\x29\x20\x47\x5f\x4d\x53\x56\x43\x5f\x44\x54\x4f\x52\x20\x28\x5f\x66\x75\x6e\x63\x2c\x20\x47\x5f\x4d\x53\x56\x43\x5f\x53\x59\x4d\x42\x4f\x4c\x5f\x50\x52\x45\x46\x49\x58\x29\x0a\x0a\x23\x64\x65\x66\x69\x6e\x65\x20\x47\x5f\x4d\x53\x56\x43\x5f\x43\x54\x4f\x52\x28\x5f\x66\x75\x6e\x63\x2c\x5f\x73\x79\x6d\x5f\x70\x72\x65\x66\x69\x78\x29\x20\x5c\x0a\x20\x20\x73\x74\x61\x74\x69\x63\x20\x76\x6f\x69\x64\x20\x5f\x66\x75\x6e\x63\x28\x76\x6f\x69\x64\x29\x3b\x20\x5c\x0a\x20\x20\x65\x78\x74\x65\x72\x6e\x20\x69\x6e\x74\x20\x28\x2a\x20\x5f\x61\x72\x72\x61\x79\x20\x23\x23\x20\x5f\x66\x75\x6e\x63\x29\x28\x76\x6f\x69\x64\x29\x3b\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x5c\x0a\x20\x20\x69\x6e\x74\x20\x5f\x66\x75\x6e\x63\x20\x23\x23\x20\x5f\x77\x72\x61\x70\x70\x65\x72\x28\x76\x6f\x69\x64\x29\x20\x7b\x20\x5f\x66\x75\x6e\x63\x28\x29\x3b\x20\x67\x5f\x73\x6c\x69\x73\x74\x5f\x66\x69\x6e\x64\x20\x28\x4e\x55\x4c\x4c\x2c\x20\x20\x5f\x61\x72\x72\x61\x79\x20\x23\x23\x20\x5f\x66\x75\x6e\x63\x29\x3b\x20\x72\x65\x74\x75\x72\x6e\x20\x30\x3b\x20\x7d\x20\x5c\x0a\x20\x20\x5f\x5f\x70\x72\x61\x67\x6d\x61\x28\x63\x6f\x6d\x6d\x65\x6e\x74\x28\x6c\x69\x6e\x6b\x65\x72\x2c\x22\x2f\x69\x6e\x63\x6c\x75\x64\x65\x3a\x22\x20\x5f\x73\x79\x6d\x5f\x70\x72\x65\x66\x69\x78\x20\x23\x20\x5f\x66\x75\x6e\x63\x20\x22\x5f\x77\x72\x61\x70\x70\x65\x72\x22\x29\x29\x20\x5c\x0a\x20\x20\x5f\x5f\x70\x72\x61\x67\x6d\x61\x28\x73\x65\x63\x74\x69\x6f\x6e\x28\x22\x2e\x43\x52\x54\x24\x58\x43\x55\x22\x2c\x72\x65\x61\x64\x29\x29\x20\x5c\x0a\x20\x20\x5f\x5f\x64\x65\x63\x6c\x73\x70\x65\x63\x28\x61\x6c\x6c\x6f\x63\x61\x74\x65\x28\x22\x2e\x43\x52\x54\x24\x58\x43\x55\x22\x29\x29\x20\x69\x6e\x74\x20\x28\x2a\x20\x5f\x61\x72\x72\x61\x79\x20\x23\x23\x20\x5f\x66\x75\x6e\x63\x29\x28\x76\x6f\x69\x64\x29\x20\x3d\x20\x5f\x66\x75\x6e\x63\x20\x23\x23\x20\x5f\x77\x72\x61\x70\x70\x65\x72\x3b\x0a\x0a\x23\x64\x65\x66\x69\x6e\x65\x20\x47\x5f\x4d\x53\x56\x43\x5f\x44\x54\x4f\x52\x28\x5f\x66\x75\x6e\x63\x2c\x5f\x73\x79\x6d\x5f\x70\x72\x65\x66\x69\x78\x29\x20\x5c\x0a\x20\x20\x73\x74\x61\x74\x69\x63\x20\x76\x6f\x69\x64\x20\x5f\x66\x75\x6e\x63\x28\x76\x6f\x69\x64\x29\x3b\x20\x5c\x0a\x20\x20\x65\x78\x74\x65\x72\x6e\x20\x69\x6e\x74\x20\x28\x2a\x20\x5f\x61\x72\x72\x61\x79\x20\x23\x23\x20\x5f\x66\x75\x6e\x63\x29\x28\x76\x6f\x69\x64\x29\x3b\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x5c\x0a\x20\x20\x69\x6e\x74\x20\x5f\x66\x75\x6e\x63\x20\x23\x23\x20\x5f\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x6f\x72\x28\x76\x6f\x69\x64\x29\x20\x7b\x20\x61\x74\x65\x78\x69\x74\x20\x28\x5f\x66\x75\x6e\x63\x29\x3b\x20\x67\x5f\x73\x6c\x69\x73\x74\x5f\x66\x69\x6e\x64\x20\x28\x4e\x55\x4c\x4c\x2c\x20\x20\x5f\x61\x72\x72\x61\x79\x20\x23\x23\x20\x5f\x66\x75\x6e\x63\x29\x3b\x20\x72\x65\x74\x75\x72\x6e\x20\x30\x3b\x20\x7d\x20\x5c\x0a\x20\x20\x20\x5f\x5f\x70\x72\x61\x67\x6d\x61\x28\x63\x6f\x6d\x6d\x65\x6e\x74\x28\x6c\x69\x6e\x6b\x65\x72\x2c\x22\x2f\x69\x6e\x63\x6c\x75\x64\x65\x3a\x22\x20\x5f\x73\x79\x6d\x5f\x70\x72\x65\x66\x69\x78\x20\x23\x20\x5f\x66\x75\x6e\x63\x20\x22\x5f\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x6f\x72\x22\x29\x29\x20\x5c\x0a\x20\x20\x5f\x5f\x70\x72\x61\x67\x6d\x61\x28\x73\x65\x63\x74\x69\x6f\x6e\x28\x22\x2e\x43\x52\x54\x24\x58\x43\x55\x22\x2c\x72\x65\x61\x64\x29\x29\x20\x5c\x0a\x20\x20\x5f\x5f\x64\x65\x63\x6c\x73\x70\x65\x63\x28\x61\x6c\x6c\x6f\x63\x61\x74\x65\x28\x22\x2e\x43\x52\x54\x24\x58\x43\x55\x22\x29\x29\x20\x69\x6e\x74\x20\x28\x2a\x20\x5f\x61\x72\x72\x61\x79\x20\x23\x23\x20\x5f\x66\x75\x6e\x63\x29\x28\x76\x6f\x69\x64\x29\x20\x3d\x20\x5f\x66\x75\x6e\x63\x20\x23\x23\x20\x5f\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x6f\x72\x3b\x0a\x0a\x23\x65\x6c\x69\x66\x20\x64\x65\x66\x69\x6e\x65\x64\x20\x28\x5f\x4d\x53\x43\x5f\x56\x45\x52\x29\x0a\x0a\x23\x64\x65\x66\x69\x6e\x65\x20\x47\x5f\x48\x41\x53\x5f\x43\x4f\x4e\x53\x54\x52\x55\x43\x54\x4f\x52\x53\x20\x31\x0a\x0a\x2f\x2a\x20\x50\x72\x65\x20\x56\x69\x73\x75\x61\x6c\x20\x73\x74\x75\x64\x69\x6f\x20\x32\x30\x30\x38\x20\x6d\x75\x73\x74\x20\x75\x73\x65\x20\x23\x70\x72\x61\x67\x6d\x61\x20\x73\x65\x63\x74\x69\x6f\x6e\x20\x2a\x2f\x0a\x23\x64\x65\x66\x69\x6e\x65\x20\x47\x5f\x44\x45\x46\x49\x4e\x45\x5f\x43\x4f\x4e\x53\x54\x52\x55\x43\x54\x4f\x52\x5f\x4e\x45\x45\x44\x53\x5f\x50\x52\x41\x47\x4d\x41\x20\x31\x0a\x23\x64\x65\x66\x69\x6e\x65\x20\x47\x5f\x44\x45\x46\x49\x4e\x45\x5f\x44\x45\x53\x54\x52\x55\x43\x54\x4f\x52\x5f\x4e\x45\x45\x44\x53\x5f\x50\x52\x41\x47\x4d\x41\x20\x31\x0a\x0a\x23\x64\x65\x66\x69\x6e\x65\x20\x47\x5f\x44\x45\x46\x49\x4e\x45\x5f\x43\x4f\x4e\x53\x54\x52\x55\x43\x54\x4f\x52\x5f\x50\x52\x41\x47\x4d\x41\x5f\x41\x52\x47\x53\x28\x5f\x66\x75\x6e\x63\x29\x20\x5c\x0a\x20\x20\x73\x65\x63\x74\x69\x6f\x6e\x28\x22\x2e\x43\x52\x54\x24\x58\x43\x55\x22\x2c\x72\x65\x61\x64\x29\x0a\x23\x64\x65\x66\x69\x6e\x65\x20\x47\x5f\x44\x45\x46\x49\x4e\x45\x5f\x43\x4f\x4e\x53\x54\x52\x55\x43\x54\x4f\x52\x28\x5f\x66\x75\x6e\x63\x29\x20\x5c\x0a\x20\x20\x73\x74\x61\x74\x69\x63\x20\x76\x6f\x69\x64\x20\x5f\x66\x75\x6e\x63\x28\x76\x6f\x69\x64\x29\x3b\x20\x5c\x0a\x20\x20\x73\x74\x61\x74\x69\x63\x20\x69\x6e\x74\x20\x5f\x66\x75\x6e\x63\x20\x23\x23\x20\x5f\x77\x72\x61\x70\x70\x65\x72\x28\x76\x6f\x69\x64\x29\x20\x7b\x20\x5f\x66\x75\x6e\x63\x28\x29\x3b\x20\x72\x65\x74\x75\x72\x6e\x20\x30\x3b\x20\x7d\x20\x5c\x0a\x20\x20\x5f\x5f\x64\x65\x63\x6c\x73\x70\x65\x63\x28\x61\x6c\x6c\x6f\x63\x61\x74\x65\x28\x22\x2e\x43\x52\x54\x24\x58\x43\x55\x22\x29\x29\x20\x73\x74\x61\x74\x69\x63\x20\x69\x6e\x74\x20\x28\x2a\x70\x29\x28\x76\x6f\x69\x64\x29\x20\x3d\x20\x5f\x66\x75\x6e\x63\x20\x23\x23\x20\x5f\x77\x72\x61\x70\x70\x65\x72\x3b\x0a\x0a\x23\x64\x65\x66\x69\x6e\x65\x20\x47\x5f\x44\x45\x46\x49\x4e\x45\x5f\x44\x45\x53\x54\x52\x55\x43\x54\x4f\x52\x5f\x50\x52\x41\x47\x4d\x41\x5f\x41\x52\x47\x53\x28\x5f\x66\x75\x6e\x63\x29\x20\x5c\x0a\x20\x20\x73\x65\x63\x74\x69\x6f\x6e\x28\x22\x2e\x43\x52\x54\x24\x58\x43\x55\x22\x2c\x72\x65\x61\x64\x29\x0a\x23\x64\x65\x66\x69\x6e\x65\x20\x47\x5f\x44\x45\x46\x49\x4e\x45\x5f\x44\x45\x53\x54\x52\x55\x43\x54\x4f\x52\x28\x5f\x66\x75\x6e\x63\x29\x20\x5c\x0a\x20\x20\x73\x74\x61\x74\x69\x63\x20\x76\x6f\x69\x64\x20\x5f\x66\x75\x6e\x63\x28\x76\x6f\x69\x64\x29\x3b\x20\x5c\x0a\x20\x20\x73\x74\x61\x74\x69\x63\x20\x69\x6e\x74\x20\x5f\x66\x75\x6e\x63\x20\x23\x23\x20\x5f\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x6f\x72\x28\x76\x6f\x69\x64\x29\x20\x7b\x20\x61\x74\x65\x78\x69\x74\x20\x28\x5f\x66\x75\x6e\x63\x29\x3b\x20\x72\x65\x74\x75\x72\x6e\x20\x30\x3b\x20\x7d\x20\x5c\x0a\x20\x20\x5f\x5f\x64\x65\x63\x6c\x73\x70\x65\x63\x28\x61\x6c\x6c\x6f\x63\x61\x74\x65\x28\x22\x2e\x43\x52\x54\x24\x58\x43\x55\x22\x29\x29\x20\x73\x74\x61\x74\x69\x63\x20\x69\x6e\x74\x20\x28\x2a\x20\x5f\x61\x72\x72\x61\x79\x20\x23\x23\x20\x5f\x66\x75\x6e\x63\x29\x28\x76\x6f\x69\x64\x29\x20\x3d\x20\x5f\x66\x75\x6e\x63\x20\x23\x23\x20\x5f\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x6f\x72\x3b\x0a\x0a\x23\x65\x6c\x69\x66\x20\x64\x65\x66\x69\x6e\x65\x64\x28\x5f\x5f\x53\x55\x4e\x50\x52\x4f\x5f\x43\x29\x0a\x0a\x2f\x2a\x20\x54\x68\x69\x73\x20\x69\x73\x20\x6e\x6f\x74\x20\x74\x65\x73\x74\x65\x64\x2c\x20\x62\x75\x74\x20\x69\x20\x62\x65\x6c\x69\x65\x76\x65\x20\x69\x74\x20\x73\x68\x6f\x75\x6c\x64\x20\x77\x6f\x72\x6b\x2c\x20\x62\x61\x73\x65\x64\x20\x6f\x6e\x3a\x0a\x20\x2a\x20\x68\x74\x74\x70\x3a\x2f\x2f\x6f\x70\x65\x6e\x73\x6f\x75\x72\x63\x65\x2e\x61\x70\x70\x6c\x65\x2e\x63\x6f\x6d\x2f\x73\x6f\x75\x72\x63\x65\x2f\x4f\x70\x65\x6e\x53\x53\x4c\x30\x39\x38\x2f\x4f\x70\x65\x6e\x53\x53\x4c\x30\x39\x38\x2d\x33\x35\x2f\x73\x72\x63\x2f\x66\x69\x70\x73\x2f\x66\x69\x70\x73\x5f\x70\x72\x65\x6d\x61\x69\x6e\x2e\x63\x0a\x20\x2a\x2f\x0a\x0a\x23\x64\x65\x66\x69\x6e\x65\x20\x47\x5f\x48\x41\x53\x5f\x43\x4f\x4e\x53\x54\x52\x55\x43\x54\x4f\x52\x53\x20\x31\x0a\x0a\x23\x64\x65\x66\x69\x6e\x65\x20\x47\x5f\x44\x45\x46\x49\x4e\x45\x5f\x43\x4f\x4e\x53\x54\x52\x55\x43\x54\x4f\x52\x5f\x4e\x45\x45\x44\x53\x5f\x50\x52\x41\x47\x4d\x41\x20\x31\x0a\x23\x64\x65\x66\x69\x6e\x65\x20\x47\x5f\x44\x45\x46\x49\x4e\x45\x5f\x44\x45\x53\x54\x52\x55\x43\x54\x4f\x52\x5f\x4e\x45\x45\x44\x53\x5f\x50\x52\x41\x47\x4d\x41\x20\x31\x0a\x0a\x23\x64\x65\x66\x69\x6e\x65\x20\x47\x5f\x44\x45\x46\x49\x4e\x45\x5f\x43\x4f\x4e\x53\x54\x52\x55\x43\x54\x4f\x52\x5f\x50\x52\x41\x47\x4d\x41\x5f\x41\x52\x47\x53\x28\x5f\x66\x75\x6e\x63\x29\x20\x5c\x0a\x20\x20\x69\x6e\x69\x74\x28\x5f\x66\x75\x6e\x63\x29\x0a\x23\x64\x65\x66\x69\x6e\x65\x20\x47\x5f\x44\x45\x46\x49\x4e\x45\x5f\x43\x4f\x4e\x53\x54\x52\x55\x43\x54\x4f\x52\x28\x5f\x66\x75\x6e\x63\x29\x20\x5c\x0a\x20\x20\x73\x74\x61\x74\x69\x63\x20\x76\x6f\x69\x64\x20\x5f\x66\x75\x6e\x63\x28\x76\x6f\x69\x64\x29\x3b\x0a\x0a\x23\x64\x65\x66\x69\x6e\x65\x20\x47\x5f\x44\x45\x46\x49\x4e\x45\x5f\x44\x45\x53\x54\x52\x55\x43\x54\x4f\x52\x5f\x50\x52\x41\x47\x4d\x41\x5f\x41\x52\x47\x53\x28\x5f\x66\x75\x6e\x63\x29\x20\x5c\x0a\x20\x20\x66\x69\x6e\x69\x28\x5f\x66\x75\x6e\x63\x29\x0a\x23\x64\x65\x66\x69\x6e\x65\x20\x47\x5f\x44\x45\x46\x49\x4e\x45\x5f\x44\x45\x53\x54\x52\x55\x43\x54\x4f\x52\x28\x5f\x66\x75\x6e\x63\x29\x20\x5c\x0a\x20\x20\x73\x74\x61\x74\x69\x63\x20\x76\x6f\x69\x64\x20\x5f\x66\x75\x6e\x63\x28\x76\x6f\x69\x64\x29\x3b\x0a\x0a\x23\x65\x6c\x73\x65\x0a\x0a\x2f\x2a\x20\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x6f\x72\x73\x20\x6e\x6f\x74\x20\x73\x75\x70\x70\x6f\x72\x74\x65\x64\x20\x66\x6f\x72\x20\x74\x68\x69\x73\x20\x63\x6f\x6d\x70\x69\x6c\x65\x72\x20\x2a\x2f\x0a\x0a\x23\x65\x6e\x64\x69\x66\x0a\x0a\x23\x65\x6e\x64\x69\x66\x20\x2f\x2a\x20\x5f\x5f\x47\x54\x4b\x5f\x44\x4f\x43\x5f\x49\x47\x4e\x4f\x52\x45\x5f\x5f\x20\x2a\x2f\x0a\x23\x65\x6e\x64\x69\x66\x20\x2f\x2a\x20\x5f\x5f\x47\x5f\x43\x4f\x4e\x53\x54\x52\x55\x43\x54\x4f\x52\x5f\x48\x5f\x5f\x20\x2a\x2f\x0a";
442diff --git a/gio/gdbus-daemon-generated.c b/gio/gdbus-daemon-generated.c
443new file mode 100644
444index 0000000..24706b6
445--- /dev/null
446+++ b/gio/gdbus-daemon-generated.c
447@@ -0,0 +1,4339 @@
448+/*
449+ * This file is generated by gdbus-codegen, do not modify it.
450+ *
451+ * The license of this code is the same as for the D-Bus interface description
452+ * it was derived from. Note that it links to GLib, so must comply with the
453+ * LGPL linking clauses.
454+ */
455+
456+#ifdef HAVE_CONFIG_H
457+#  include "config.h"
458+#endif
459+
460+#include "gdbus-daemon-generated.h"
461+
462+#include <string.h>
463+#ifdef G_OS_UNIX
464+#  include <gio/gunixfdlist.h>
465+#endif
466+
467+typedef struct
468+{
469+  GDBusArgInfo parent_struct;
470+  gboolean use_gvariant;
471+} _ExtendedGDBusArgInfo;
472+
473+typedef struct
474+{
475+  GDBusMethodInfo parent_struct;
476+  const gchar *signal_name;
477+  gboolean pass_fdlist;
478+} _ExtendedGDBusMethodInfo;
479+
480+typedef struct
481+{
482+  GDBusSignalInfo parent_struct;
483+  const gchar *signal_name;
484+} _ExtendedGDBusSignalInfo;
485+
486+typedef struct
487+{
488+  GDBusPropertyInfo parent_struct;
489+  const gchar *hyphen_name;
490+  guint use_gvariant : 1;
491+  guint emits_changed_signal : 1;
492+} _ExtendedGDBusPropertyInfo;
493+
494+typedef struct
495+{
496+  GDBusInterfaceInfo parent_struct;
497+  const gchar *hyphen_name;
498+} _ExtendedGDBusInterfaceInfo;
499+
500+typedef struct
501+{
502+  const _ExtendedGDBusPropertyInfo *info;
503+  guint prop_id;
504+  GValue orig_value; /* the value before the change */
505+} ChangedProperty;
506+
507+static void
508+_changed_property_free (ChangedProperty *data)
509+{
510+  g_value_unset (&data->orig_value);
511+  g_free (data);
512+}
513+
514+static gboolean
515+_g_strv_equal0 (gchar **a, gchar **b)
516+{
517+  gboolean ret = FALSE;
518+  guint n;
519+  if (a == NULL && b == NULL)
520+    {
521+      ret = TRUE;
522+      goto out;
523+    }
524+  if (a == NULL || b == NULL)
525+    goto out;
526+  if (g_strv_length (a) != g_strv_length (b))
527+    goto out;
528+  for (n = 0; a[n] != NULL; n++)
529+    if (g_strcmp0 (a[n], b[n]) != 0)
530+      goto out;
531+  ret = TRUE;
532+out:
533+  return ret;
534+}
535+
536+static gboolean
537+_g_variant_equal0 (GVariant *a, GVariant *b)
538+{
539+  gboolean ret = FALSE;
540+  if (a == NULL && b == NULL)
541+    {
542+      ret = TRUE;
543+      goto out;
544+    }
545+  if (a == NULL || b == NULL)
546+    goto out;
547+  ret = g_variant_equal (a, b);
548+out:
549+  return ret;
550+}
551+
552+G_GNUC_UNUSED static gboolean
553+_g_value_equal (const GValue *a, const GValue *b)
554+{
555+  gboolean ret = FALSE;
556+  g_assert (G_VALUE_TYPE (a) == G_VALUE_TYPE (b));
557+  switch (G_VALUE_TYPE (a))
558+    {
559+      case G_TYPE_BOOLEAN:
560+        ret = (g_value_get_boolean (a) == g_value_get_boolean (b));
561+        break;
562+      case G_TYPE_UCHAR:
563+        ret = (g_value_get_uchar (a) == g_value_get_uchar (b));
564+        break;
565+      case G_TYPE_INT:
566+        ret = (g_value_get_int (a) == g_value_get_int (b));
567+        break;
568+      case G_TYPE_UINT:
569+        ret = (g_value_get_uint (a) == g_value_get_uint (b));
570+        break;
571+      case G_TYPE_INT64:
572+        ret = (g_value_get_int64 (a) == g_value_get_int64 (b));
573+        break;
574+      case G_TYPE_UINT64:
575+        ret = (g_value_get_uint64 (a) == g_value_get_uint64 (b));
576+        break;
577+      case G_TYPE_DOUBLE:
578+        {
579+          /* Avoid -Wfloat-equal warnings by doing a direct bit compare */
580+          gdouble da = g_value_get_double (a);
581+          gdouble db = g_value_get_double (b);
582+          ret = memcmp (&da, &db, sizeof (gdouble)) == 0;
583+        }
584+        break;
585+      case G_TYPE_STRING:
586+        ret = (g_strcmp0 (g_value_get_string (a), g_value_get_string (b)) == 0);
587+        break;
588+      case G_TYPE_VARIANT:
589+        ret = _g_variant_equal0 (g_value_get_variant (a), g_value_get_variant (b));
590+        break;
591+      default:
592+        if (G_VALUE_TYPE (a) == G_TYPE_STRV)
593+          ret = _g_strv_equal0 (g_value_get_boxed (a), g_value_get_boxed (b));
594+        else
595+          g_critical ("_g_value_equal() does not handle type %s", g_type_name (G_VALUE_TYPE (a)));
596+        break;
597+    }
598+  return ret;
599+}
600+
601+/* ------------------------------------------------------------------------
602+ * Code for interface org.freedesktop.DBus
603+ * ------------------------------------------------------------------------
604+ */
605+
606+/**
607+ * SECTION:_GFreedesktopDBus
608+ * @title: _GFreedesktopDBus
609+ * @short_description: Generated C code for the org.freedesktop.DBus D-Bus interface
610+ *
611+ * This section contains code for working with the <link linkend="gdbus-interface-org-freedesktop-DBus.top_of_page">org.freedesktop.DBus</link> D-Bus interface in C.
612+ */
613+
614+/* ---- Introspection data for org.freedesktop.DBus ---- */
615+
616+static const _ExtendedGDBusArgInfo __g_freedesktop_dbus_method_info_hello_OUT_ARG_assigned_name =
617+{
618+  {
619+    -1,
620+    (gchar *) "assigned_name",
621+    (gchar *) "s",
622+    NULL
623+  },
624+  FALSE
625+};
626+
627+static const GDBusArgInfo * const __g_freedesktop_dbus_method_info_hello_OUT_ARG_pointers[] =
628+{
629+  &__g_freedesktop_dbus_method_info_hello_OUT_ARG_assigned_name.parent_struct,
630+  NULL
631+};
632+
633+static const _ExtendedGDBusMethodInfo __g_freedesktop_dbus_method_info_hello =
634+{
635+  {
636+    -1,
637+    (gchar *) "Hello",
638+    NULL,
639+    (GDBusArgInfo **) &__g_freedesktop_dbus_method_info_hello_OUT_ARG_pointers,
640+    NULL
641+  },
642+  "handle-hello",
643+  FALSE
644+};
645+
646+static const _ExtendedGDBusArgInfo __g_freedesktop_dbus_method_info_request_name_IN_ARG_name =
647+{
648+  {
649+    -1,
650+    (gchar *) "name",
651+    (gchar *) "s",
652+    NULL
653+  },
654+  FALSE
655+};
656+
657+static const _ExtendedGDBusArgInfo __g_freedesktop_dbus_method_info_request_name_IN_ARG_flags =
658+{
659+  {
660+    -1,
661+    (gchar *) "flags",
662+    (gchar *) "u",
663+    NULL
664+  },
665+  FALSE
666+};
667+
668+static const GDBusArgInfo * const __g_freedesktop_dbus_method_info_request_name_IN_ARG_pointers[] =
669+{
670+  &__g_freedesktop_dbus_method_info_request_name_IN_ARG_name.parent_struct,
671+  &__g_freedesktop_dbus_method_info_request_name_IN_ARG_flags.parent_struct,
672+  NULL
673+};
674+
675+static const _ExtendedGDBusArgInfo __g_freedesktop_dbus_method_info_request_name_OUT_ARG_value =
676+{
677+  {
678+    -1,
679+    (gchar *) "value",
680+    (gchar *) "u",
681+    NULL
682+  },
683+  FALSE
684+};
685+
686+static const GDBusArgInfo * const __g_freedesktop_dbus_method_info_request_name_OUT_ARG_pointers[] =
687+{
688+  &__g_freedesktop_dbus_method_info_request_name_OUT_ARG_value.parent_struct,
689+  NULL
690+};
691+
692+static const _ExtendedGDBusMethodInfo __g_freedesktop_dbus_method_info_request_name =
693+{
694+  {
695+    -1,
696+    (gchar *) "RequestName",
697+    (GDBusArgInfo **) &__g_freedesktop_dbus_method_info_request_name_IN_ARG_pointers,
698+    (GDBusArgInfo **) &__g_freedesktop_dbus_method_info_request_name_OUT_ARG_pointers,
699+    NULL
700+  },
701+  "handle-request-name",
702+  FALSE
703+};
704+
705+static const _ExtendedGDBusArgInfo __g_freedesktop_dbus_method_info_release_name_IN_ARG_name =
706+{
707+  {
708+    -1,
709+    (gchar *) "name",
710+    (gchar *) "s",
711+    NULL
712+  },
713+  FALSE
714+};
715+
716+static const GDBusArgInfo * const __g_freedesktop_dbus_method_info_release_name_IN_ARG_pointers[] =
717+{
718+  &__g_freedesktop_dbus_method_info_release_name_IN_ARG_name.parent_struct,
719+  NULL
720+};
721+
722+static const _ExtendedGDBusArgInfo __g_freedesktop_dbus_method_info_release_name_OUT_ARG_value =
723+{
724+  {
725+    -1,
726+    (gchar *) "value",
727+    (gchar *) "u",
728+    NULL
729+  },
730+  FALSE
731+};
732+
733+static const GDBusArgInfo * const __g_freedesktop_dbus_method_info_release_name_OUT_ARG_pointers[] =
734+{
735+  &__g_freedesktop_dbus_method_info_release_name_OUT_ARG_value.parent_struct,
736+  NULL
737+};
738+
739+static const _ExtendedGDBusMethodInfo __g_freedesktop_dbus_method_info_release_name =
740+{
741+  {
742+    -1,
743+    (gchar *) "ReleaseName",
744+    (GDBusArgInfo **) &__g_freedesktop_dbus_method_info_release_name_IN_ARG_pointers,
745+    (GDBusArgInfo **) &__g_freedesktop_dbus_method_info_release_name_OUT_ARG_pointers,
746+    NULL
747+  },
748+  "handle-release-name",
749+  FALSE
750+};
751+
752+static const _ExtendedGDBusArgInfo __g_freedesktop_dbus_method_info_start_service_by_name_IN_ARG_name =
753+{
754+  {
755+    -1,
756+    (gchar *) "name",
757+    (gchar *) "s",
758+    NULL
759+  },
760+  FALSE
761+};
762+
763+static const _ExtendedGDBusArgInfo __g_freedesktop_dbus_method_info_start_service_by_name_IN_ARG_flags =
764+{
765+  {
766+    -1,
767+    (gchar *) "flags",
768+    (gchar *) "u",
769+    NULL
770+  },
771+  FALSE
772+};
773+
774+static const GDBusArgInfo * const __g_freedesktop_dbus_method_info_start_service_by_name_IN_ARG_pointers[] =
775+{
776+  &__g_freedesktop_dbus_method_info_start_service_by_name_IN_ARG_name.parent_struct,
777+  &__g_freedesktop_dbus_method_info_start_service_by_name_IN_ARG_flags.parent_struct,
778+  NULL
779+};
780+
781+static const _ExtendedGDBusArgInfo __g_freedesktop_dbus_method_info_start_service_by_name_OUT_ARG_value =
782+{
783+  {
784+    -1,
785+    (gchar *) "value",
786+    (gchar *) "u",
787+    NULL
788+  },
789+  FALSE
790+};
791+
792+static const GDBusArgInfo * const __g_freedesktop_dbus_method_info_start_service_by_name_OUT_ARG_pointers[] =
793+{
794+  &__g_freedesktop_dbus_method_info_start_service_by_name_OUT_ARG_value.parent_struct,
795+  NULL
796+};
797+
798+static const _ExtendedGDBusMethodInfo __g_freedesktop_dbus_method_info_start_service_by_name =
799+{
800+  {
801+    -1,
802+    (gchar *) "StartServiceByName",
803+    (GDBusArgInfo **) &__g_freedesktop_dbus_method_info_start_service_by_name_IN_ARG_pointers,
804+    (GDBusArgInfo **) &__g_freedesktop_dbus_method_info_start_service_by_name_OUT_ARG_pointers,
805+    NULL
806+  },
807+  "handle-start-service-by-name",
808+  FALSE
809+};
810+
811+static const _ExtendedGDBusArgInfo __g_freedesktop_dbus_method_info_name_has_owner_IN_ARG_name =
812+{
813+  {
814+    -1,
815+    (gchar *) "name",
816+    (gchar *) "s",
817+    NULL
818+  },
819+  FALSE
820+};
821+
822+static const GDBusArgInfo * const __g_freedesktop_dbus_method_info_name_has_owner_IN_ARG_pointers[] =
823+{
824+  &__g_freedesktop_dbus_method_info_name_has_owner_IN_ARG_name.parent_struct,
825+  NULL
826+};
827+
828+static const _ExtendedGDBusArgInfo __g_freedesktop_dbus_method_info_name_has_owner_OUT_ARG_has_owner =
829+{
830+  {
831+    -1,
832+    (gchar *) "has_owner",
833+    (gchar *) "b",
834+    NULL
835+  },
836+  FALSE
837+};
838+
839+static const GDBusArgInfo * const __g_freedesktop_dbus_method_info_name_has_owner_OUT_ARG_pointers[] =
840+{
841+  &__g_freedesktop_dbus_method_info_name_has_owner_OUT_ARG_has_owner.parent_struct,
842+  NULL
843+};
844+
845+static const _ExtendedGDBusMethodInfo __g_freedesktop_dbus_method_info_name_has_owner =
846+{
847+  {
848+    -1,
849+    (gchar *) "NameHasOwner",
850+    (GDBusArgInfo **) &__g_freedesktop_dbus_method_info_name_has_owner_IN_ARG_pointers,
851+    (GDBusArgInfo **) &__g_freedesktop_dbus_method_info_name_has_owner_OUT_ARG_pointers,
852+    NULL
853+  },
854+  "handle-name-has-owner",
855+  FALSE
856+};
857+
858+static const _ExtendedGDBusArgInfo __g_freedesktop_dbus_method_info_list_names_OUT_ARG_names =
859+{
860+  {
861+    -1,
862+    (gchar *) "names",
863+    (gchar *) "as",
864+    NULL
865+  },
866+  FALSE
867+};
868+
869+static const GDBusArgInfo * const __g_freedesktop_dbus_method_info_list_names_OUT_ARG_pointers[] =
870+{
871+  &__g_freedesktop_dbus_method_info_list_names_OUT_ARG_names.parent_struct,
872+  NULL
873+};
874+
875+static const _ExtendedGDBusMethodInfo __g_freedesktop_dbus_method_info_list_names =
876+{
877+  {
878+    -1,
879+    (gchar *) "ListNames",
880+    NULL,
881+    (GDBusArgInfo **) &__g_freedesktop_dbus_method_info_list_names_OUT_ARG_pointers,
882+    NULL
883+  },
884+  "handle-list-names",
885+  FALSE
886+};
887+
888+static const _ExtendedGDBusArgInfo __g_freedesktop_dbus_method_info_list_activatable_names_OUT_ARG_activatable_names =
889+{
890+  {
891+    -1,
892+    (gchar *) "activatable_names",
893+    (gchar *) "as",
894+    NULL
895+  },
896+  FALSE
897+};
898+
899+static const GDBusArgInfo * const __g_freedesktop_dbus_method_info_list_activatable_names_OUT_ARG_pointers[] =
900+{
901+  &__g_freedesktop_dbus_method_info_list_activatable_names_OUT_ARG_activatable_names.parent_struct,
902+  NULL
903+};
904+
905+static const _ExtendedGDBusMethodInfo __g_freedesktop_dbus_method_info_list_activatable_names =
906+{
907+  {
908+    -1,
909+    (gchar *) "ListActivatableNames",
910+    NULL,
911+    (GDBusArgInfo **) &__g_freedesktop_dbus_method_info_list_activatable_names_OUT_ARG_pointers,
912+    NULL
913+  },
914+  "handle-list-activatable-names",
915+  FALSE
916+};
917+
918+static const _ExtendedGDBusArgInfo __g_freedesktop_dbus_method_info_add_match_IN_ARG_rule =
919+{
920+  {
921+    -1,
922+    (gchar *) "rule",
923+    (gchar *) "s",
924+    NULL
925+  },
926+  FALSE
927+};
928+
929+static const GDBusArgInfo * const __g_freedesktop_dbus_method_info_add_match_IN_ARG_pointers[] =
930+{
931+  &__g_freedesktop_dbus_method_info_add_match_IN_ARG_rule.parent_struct,
932+  NULL
933+};
934+
935+static const _ExtendedGDBusMethodInfo __g_freedesktop_dbus_method_info_add_match =
936+{
937+  {
938+    -1,
939+    (gchar *) "AddMatch",
940+    (GDBusArgInfo **) &__g_freedesktop_dbus_method_info_add_match_IN_ARG_pointers,
941+    NULL,
942+    NULL
943+  },
944+  "handle-add-match",
945+  FALSE
946+};
947+
948+static const _ExtendedGDBusArgInfo __g_freedesktop_dbus_method_info_remove_match_IN_ARG_rule =
949+{
950+  {
951+    -1,
952+    (gchar *) "rule",
953+    (gchar *) "s",
954+    NULL
955+  },
956+  FALSE
957+};
958+
959+static const GDBusArgInfo * const __g_freedesktop_dbus_method_info_remove_match_IN_ARG_pointers[] =
960+{
961+  &__g_freedesktop_dbus_method_info_remove_match_IN_ARG_rule.parent_struct,
962+  NULL
963+};
964+
965+static const _ExtendedGDBusMethodInfo __g_freedesktop_dbus_method_info_remove_match =
966+{
967+  {
968+    -1,
969+    (gchar *) "RemoveMatch",
970+    (GDBusArgInfo **) &__g_freedesktop_dbus_method_info_remove_match_IN_ARG_pointers,
971+    NULL,
972+    NULL
973+  },
974+  "handle-remove-match",
975+  FALSE
976+};
977+
978+static const _ExtendedGDBusArgInfo __g_freedesktop_dbus_method_info_get_name_owner_IN_ARG_name =
979+{
980+  {
981+    -1,
982+    (gchar *) "name",
983+    (gchar *) "s",
984+    NULL
985+  },
986+  FALSE
987+};
988+
989+static const GDBusArgInfo * const __g_freedesktop_dbus_method_info_get_name_owner_IN_ARG_pointers[] =
990+{
991+  &__g_freedesktop_dbus_method_info_get_name_owner_IN_ARG_name.parent_struct,
992+  NULL
993+};
994+
995+static const _ExtendedGDBusArgInfo __g_freedesktop_dbus_method_info_get_name_owner_OUT_ARG_unique_name =
996+{
997+  {
998+    -1,
999+    (gchar *) "unique_name",
1000+    (gchar *) "s",
1001+    NULL
1002+  },
1003+  FALSE
1004+};
1005+
1006+static const GDBusArgInfo * const __g_freedesktop_dbus_method_info_get_name_owner_OUT_ARG_pointers[] =
1007+{
1008+  &__g_freedesktop_dbus_method_info_get_name_owner_OUT_ARG_unique_name.parent_struct,
1009+  NULL
1010+};
1011+
1012+static const _ExtendedGDBusMethodInfo __g_freedesktop_dbus_method_info_get_name_owner =
1013+{
1014+  {
1015+    -1,
1016+    (gchar *) "GetNameOwner",
1017+    (GDBusArgInfo **) &__g_freedesktop_dbus_method_info_get_name_owner_IN_ARG_pointers,
1018+    (GDBusArgInfo **) &__g_freedesktop_dbus_method_info_get_name_owner_OUT_ARG_pointers,
1019+    NULL
1020+  },
1021+  "handle-get-name-owner",
1022+  FALSE
1023+};
1024+
1025+static const _ExtendedGDBusArgInfo __g_freedesktop_dbus_method_info_list_queued_owners_IN_ARG_name =
1026+{
1027+  {
1028+    -1,
1029+    (gchar *) "name",
1030+    (gchar *) "s",
1031+    NULL
1032+  },
1033+  FALSE
1034+};
1035+
1036+static const GDBusArgInfo * const __g_freedesktop_dbus_method_info_list_queued_owners_IN_ARG_pointers[] =
1037+{
1038+  &__g_freedesktop_dbus_method_info_list_queued_owners_IN_ARG_name.parent_struct,
1039+  NULL
1040+};
1041+
1042+static const _ExtendedGDBusArgInfo __g_freedesktop_dbus_method_info_list_queued_owners_OUT_ARG_queued_owners =
1043+{
1044+  {
1045+    -1,
1046+    (gchar *) "queued_owners",
1047+    (gchar *) "as",
1048+    NULL
1049+  },
1050+  FALSE
1051+};
1052+
1053+static const GDBusArgInfo * const __g_freedesktop_dbus_method_info_list_queued_owners_OUT_ARG_pointers[] =
1054+{
1055+  &__g_freedesktop_dbus_method_info_list_queued_owners_OUT_ARG_queued_owners.parent_struct,
1056+  NULL
1057+};
1058+
1059+static const _ExtendedGDBusMethodInfo __g_freedesktop_dbus_method_info_list_queued_owners =
1060+{
1061+  {
1062+    -1,
1063+    (gchar *) "ListQueuedOwners",
1064+    (GDBusArgInfo **) &__g_freedesktop_dbus_method_info_list_queued_owners_IN_ARG_pointers,
1065+    (GDBusArgInfo **) &__g_freedesktop_dbus_method_info_list_queued_owners_OUT_ARG_pointers,
1066+    NULL
1067+  },
1068+  "handle-list-queued-owners",
1069+  FALSE
1070+};
1071+
1072+static const _ExtendedGDBusArgInfo __g_freedesktop_dbus_method_info_get_connection_unix_user_IN_ARG_name =
1073+{
1074+  {
1075+    -1,
1076+    (gchar *) "name",
1077+    (gchar *) "s",
1078+    NULL
1079+  },
1080+  FALSE
1081+};
1082+
1083+static const GDBusArgInfo * const __g_freedesktop_dbus_method_info_get_connection_unix_user_IN_ARG_pointers[] =
1084+{
1085+  &__g_freedesktop_dbus_method_info_get_connection_unix_user_IN_ARG_name.parent_struct,
1086+  NULL
1087+};
1088+
1089+static const _ExtendedGDBusArgInfo __g_freedesktop_dbus_method_info_get_connection_unix_user_OUT_ARG_uid =
1090+{
1091+  {
1092+    -1,
1093+    (gchar *) "uid",
1094+    (gchar *) "u",
1095+    NULL
1096+  },
1097+  FALSE
1098+};
1099+
1100+static const GDBusArgInfo * const __g_freedesktop_dbus_method_info_get_connection_unix_user_OUT_ARG_pointers[] =
1101+{
1102+  &__g_freedesktop_dbus_method_info_get_connection_unix_user_OUT_ARG_uid.parent_struct,
1103+  NULL
1104+};
1105+
1106+static const _ExtendedGDBusMethodInfo __g_freedesktop_dbus_method_info_get_connection_unix_user =
1107+{
1108+  {
1109+    -1,
1110+    (gchar *) "GetConnectionUnixUser",
1111+    (GDBusArgInfo **) &__g_freedesktop_dbus_method_info_get_connection_unix_user_IN_ARG_pointers,
1112+    (GDBusArgInfo **) &__g_freedesktop_dbus_method_info_get_connection_unix_user_OUT_ARG_pointers,
1113+    NULL
1114+  },
1115+  "handle-get-connection-unix-user",
1116+  FALSE
1117+};
1118+
1119+static const _ExtendedGDBusArgInfo __g_freedesktop_dbus_method_info_get_connection_unix_process_id_IN_ARG_name =
1120+{
1121+  {
1122+    -1,
1123+    (gchar *) "name",
1124+    (gchar *) "s",
1125+    NULL
1126+  },
1127+  FALSE
1128+};
1129+
1130+static const GDBusArgInfo * const __g_freedesktop_dbus_method_info_get_connection_unix_process_id_IN_ARG_pointers[] =
1131+{
1132+  &__g_freedesktop_dbus_method_info_get_connection_unix_process_id_IN_ARG_name.parent_struct,
1133+  NULL
1134+};
1135+
1136+static const _ExtendedGDBusArgInfo __g_freedesktop_dbus_method_info_get_connection_unix_process_id_OUT_ARG_pid =
1137+{
1138+  {
1139+    -1,
1140+    (gchar *) "pid",
1141+    (gchar *) "u",
1142+    NULL
1143+  },
1144+  FALSE
1145+};
1146+
1147+static const GDBusArgInfo * const __g_freedesktop_dbus_method_info_get_connection_unix_process_id_OUT_ARG_pointers[] =
1148+{
1149+  &__g_freedesktop_dbus_method_info_get_connection_unix_process_id_OUT_ARG_pid.parent_struct,
1150+  NULL
1151+};
1152+
1153+static const _ExtendedGDBusMethodInfo __g_freedesktop_dbus_method_info_get_connection_unix_process_id =
1154+{
1155+  {
1156+    -1,
1157+    (gchar *) "GetConnectionUnixProcessID",
1158+    (GDBusArgInfo **) &__g_freedesktop_dbus_method_info_get_connection_unix_process_id_IN_ARG_pointers,
1159+    (GDBusArgInfo **) &__g_freedesktop_dbus_method_info_get_connection_unix_process_id_OUT_ARG_pointers,
1160+    NULL
1161+  },
1162+  "handle-get-connection-unix-process-id",
1163+  FALSE
1164+};
1165+
1166+static const _ExtendedGDBusArgInfo __g_freedesktop_dbus_method_info_get_connection_selinux_security_context_IN_ARG_name =
1167+{
1168+  {
1169+    -1,
1170+    (gchar *) "name",
1171+    (gchar *) "s",
1172+    NULL
1173+  },
1174+  FALSE
1175+};
1176+
1177+static const GDBusArgInfo * const __g_freedesktop_dbus_method_info_get_connection_selinux_security_context_IN_ARG_pointers[] =
1178+{
1179+  &__g_freedesktop_dbus_method_info_get_connection_selinux_security_context_IN_ARG_name.parent_struct,
1180+  NULL
1181+};
1182+
1183+static const _ExtendedGDBusArgInfo __g_freedesktop_dbus_method_info_get_connection_selinux_security_context_OUT_ARG_security_context =
1184+{
1185+  {
1186+    -1,
1187+    (gchar *) "security_context",
1188+    (gchar *) "ay",
1189+    NULL
1190+  },
1191+  FALSE
1192+};
1193+
1194+static const GDBusArgInfo * const __g_freedesktop_dbus_method_info_get_connection_selinux_security_context_OUT_ARG_pointers[] =
1195+{
1196+  &__g_freedesktop_dbus_method_info_get_connection_selinux_security_context_OUT_ARG_security_context.parent_struct,
1197+  NULL
1198+};
1199+
1200+static const _ExtendedGDBusMethodInfo __g_freedesktop_dbus_method_info_get_connection_selinux_security_context =
1201+{
1202+  {
1203+    -1,
1204+    (gchar *) "GetConnectionSELinuxSecurityContext",
1205+    (GDBusArgInfo **) &__g_freedesktop_dbus_method_info_get_connection_selinux_security_context_IN_ARG_pointers,
1206+    (GDBusArgInfo **) &__g_freedesktop_dbus_method_info_get_connection_selinux_security_context_OUT_ARG_pointers,
1207+    NULL
1208+  },
1209+  "handle-get-connection-selinux-security-context",
1210+  FALSE
1211+};
1212+
1213+static const _ExtendedGDBusArgInfo __g_freedesktop_dbus_method_info_update_activation_environment_IN_ARG_environment =
1214+{
1215+  {
1216+    -1,
1217+    (gchar *) "environment",
1218+    (gchar *) "a{ss}",
1219+    NULL
1220+  },
1221+  FALSE
1222+};
1223+
1224+static const GDBusArgInfo * const __g_freedesktop_dbus_method_info_update_activation_environment_IN_ARG_pointers[] =
1225+{
1226+  &__g_freedesktop_dbus_method_info_update_activation_environment_IN_ARG_environment.parent_struct,
1227+  NULL
1228+};
1229+
1230+static const _ExtendedGDBusMethodInfo __g_freedesktop_dbus_method_info_update_activation_environment =
1231+{
1232+  {
1233+    -1,
1234+    (gchar *) "UpdateActivationEnvironment",
1235+    (GDBusArgInfo **) &__g_freedesktop_dbus_method_info_update_activation_environment_IN_ARG_pointers,
1236+    NULL,
1237+    NULL
1238+  },
1239+  "handle-update-activation-environment",
1240+  FALSE
1241+};
1242+
1243+static const _ExtendedGDBusMethodInfo __g_freedesktop_dbus_method_info_reload_config =
1244+{
1245+  {
1246+    -1,
1247+    (gchar *) "ReloadConfig",
1248+    NULL,
1249+    NULL,
1250+    NULL
1251+  },
1252+  "handle-reload-config",
1253+  FALSE
1254+};
1255+
1256+static const _ExtendedGDBusArgInfo __g_freedesktop_dbus_method_info_get_id_OUT_ARG_unique_id =
1257+{
1258+  {
1259+    -1,
1260+    (gchar *) "unique_id",
1261+    (gchar *) "s",
1262+    NULL
1263+  },
1264+  FALSE
1265+};
1266+
1267+static const GDBusArgInfo * const __g_freedesktop_dbus_method_info_get_id_OUT_ARG_pointers[] =
1268+{
1269+  &__g_freedesktop_dbus_method_info_get_id_OUT_ARG_unique_id.parent_struct,
1270+  NULL
1271+};
1272+
1273+static const _ExtendedGDBusMethodInfo __g_freedesktop_dbus_method_info_get_id =
1274+{
1275+  {
1276+    -1,
1277+    (gchar *) "GetId",
1278+    NULL,
1279+    (GDBusArgInfo **) &__g_freedesktop_dbus_method_info_get_id_OUT_ARG_pointers,
1280+    NULL
1281+  },
1282+  "handle-get-id",
1283+  FALSE
1284+};
1285+
1286+static const GDBusMethodInfo * const __g_freedesktop_dbus_method_info_pointers[] =
1287+{
1288+  &__g_freedesktop_dbus_method_info_hello.parent_struct,
1289+  &__g_freedesktop_dbus_method_info_request_name.parent_struct,
1290+  &__g_freedesktop_dbus_method_info_release_name.parent_struct,
1291+  &__g_freedesktop_dbus_method_info_start_service_by_name.parent_struct,
1292+  &__g_freedesktop_dbus_method_info_name_has_owner.parent_struct,
1293+  &__g_freedesktop_dbus_method_info_list_names.parent_struct,
1294+  &__g_freedesktop_dbus_method_info_list_activatable_names.parent_struct,
1295+  &__g_freedesktop_dbus_method_info_add_match.parent_struct,
1296+  &__g_freedesktop_dbus_method_info_remove_match.parent_struct,
1297+  &__g_freedesktop_dbus_method_info_get_name_owner.parent_struct,
1298+  &__g_freedesktop_dbus_method_info_list_queued_owners.parent_struct,
1299+  &__g_freedesktop_dbus_method_info_get_connection_unix_user.parent_struct,
1300+  &__g_freedesktop_dbus_method_info_get_connection_unix_process_id.parent_struct,
1301+  &__g_freedesktop_dbus_method_info_get_connection_selinux_security_context.parent_struct,
1302+  &__g_freedesktop_dbus_method_info_update_activation_environment.parent_struct,
1303+  &__g_freedesktop_dbus_method_info_reload_config.parent_struct,
1304+  &__g_freedesktop_dbus_method_info_get_id.parent_struct,
1305+  NULL
1306+};
1307+
1308+static const _ExtendedGDBusArgInfo __g_freedesktop_dbus_signal_info_name_owner_changed_ARG_name =
1309+{
1310+  {
1311+    -1,
1312+    (gchar *) "name",
1313+    (gchar *) "s",
1314+    NULL
1315+  },
1316+  FALSE
1317+};
1318+
1319+static const _ExtendedGDBusArgInfo __g_freedesktop_dbus_signal_info_name_owner_changed_ARG_old_owner =
1320+{
1321+  {
1322+    -1,
1323+    (gchar *) "old_owner",
1324+    (gchar *) "s",
1325+    NULL
1326+  },
1327+  FALSE
1328+};
1329+
1330+static const _ExtendedGDBusArgInfo __g_freedesktop_dbus_signal_info_name_owner_changed_ARG_new_owner =
1331+{
1332+  {
1333+    -1,
1334+    (gchar *) "new_owner",
1335+    (gchar *) "s",
1336+    NULL
1337+  },
1338+  FALSE
1339+};
1340+
1341+static const GDBusArgInfo * const __g_freedesktop_dbus_signal_info_name_owner_changed_ARG_pointers[] =
1342+{
1343+  &__g_freedesktop_dbus_signal_info_name_owner_changed_ARG_name.parent_struct,
1344+  &__g_freedesktop_dbus_signal_info_name_owner_changed_ARG_old_owner.parent_struct,
1345+  &__g_freedesktop_dbus_signal_info_name_owner_changed_ARG_new_owner.parent_struct,
1346+  NULL
1347+};
1348+
1349+static const _ExtendedGDBusSignalInfo __g_freedesktop_dbus_signal_info_name_owner_changed =
1350+{
1351+  {
1352+    -1,
1353+    (gchar *) "NameOwnerChanged",
1354+    (GDBusArgInfo **) &__g_freedesktop_dbus_signal_info_name_owner_changed_ARG_pointers,
1355+    NULL
1356+  },
1357+  "name-owner-changed"
1358+};
1359+
1360+static const _ExtendedGDBusArgInfo __g_freedesktop_dbus_signal_info_name_lost_ARG_name =
1361+{
1362+  {
1363+    -1,
1364+    (gchar *) "name",
1365+    (gchar *) "s",
1366+    NULL
1367+  },
1368+  FALSE
1369+};
1370+
1371+static const GDBusArgInfo * const __g_freedesktop_dbus_signal_info_name_lost_ARG_pointers[] =
1372+{
1373+  &__g_freedesktop_dbus_signal_info_name_lost_ARG_name.parent_struct,
1374+  NULL
1375+};
1376+
1377+static const _ExtendedGDBusSignalInfo __g_freedesktop_dbus_signal_info_name_lost =
1378+{
1379+  {
1380+    -1,
1381+    (gchar *) "NameLost",
1382+    (GDBusArgInfo **) &__g_freedesktop_dbus_signal_info_name_lost_ARG_pointers,
1383+    NULL
1384+  },
1385+  "name-lost"
1386+};
1387+
1388+static const _ExtendedGDBusArgInfo __g_freedesktop_dbus_signal_info_name_acquired_ARG_name =
1389+{
1390+  {
1391+    -1,
1392+    (gchar *) "name",
1393+    (gchar *) "s",
1394+    NULL
1395+  },
1396+  FALSE
1397+};
1398+
1399+static const GDBusArgInfo * const __g_freedesktop_dbus_signal_info_name_acquired_ARG_pointers[] =
1400+{
1401+  &__g_freedesktop_dbus_signal_info_name_acquired_ARG_name.parent_struct,
1402+  NULL
1403+};
1404+
1405+static const _ExtendedGDBusSignalInfo __g_freedesktop_dbus_signal_info_name_acquired =
1406+{
1407+  {
1408+    -1,
1409+    (gchar *) "NameAcquired",
1410+    (GDBusArgInfo **) &__g_freedesktop_dbus_signal_info_name_acquired_ARG_pointers,
1411+    NULL
1412+  },
1413+  "name-acquired"
1414+};
1415+
1416+static const GDBusSignalInfo * const __g_freedesktop_dbus_signal_info_pointers[] =
1417+{
1418+  &__g_freedesktop_dbus_signal_info_name_owner_changed.parent_struct,
1419+  &__g_freedesktop_dbus_signal_info_name_lost.parent_struct,
1420+  &__g_freedesktop_dbus_signal_info_name_acquired.parent_struct,
1421+  NULL
1422+};
1423+
1424+static const _ExtendedGDBusInterfaceInfo __g_freedesktop_dbus_interface_info =
1425+{
1426+  {
1427+    -1,
1428+    (gchar *) "org.freedesktop.DBus",
1429+    (GDBusMethodInfo **) &__g_freedesktop_dbus_method_info_pointers,
1430+    (GDBusSignalInfo **) &__g_freedesktop_dbus_signal_info_pointers,
1431+    NULL,
1432+    NULL
1433+  },
1434+  "freedesktop-dbus",
1435+};
1436+
1437+
1438+/**
1439+ * _g_freedesktop_dbus_interface_info:
1440+ *
1441+ * Gets a machine-readable description of the <link linkend="gdbus-interface-org-freedesktop-DBus.top_of_page">org.freedesktop.DBus</link> D-Bus interface.
1442+ *
1443+ * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free.
1444+ */
1445+GDBusInterfaceInfo *
1446+_g_freedesktop_dbus_interface_info (void)
1447+{
1448+  return (GDBusInterfaceInfo *) &__g_freedesktop_dbus_interface_info.parent_struct;
1449+}
1450+
1451+/**
1452+ * _g_freedesktop_dbus_override_properties:
1453+ * @klass: The class structure for a #GObject derived class.
1454+ * @property_id_begin: The property id to assign to the first overridden property.
1455+ *
1456+ * Overrides all #GObject properties in the #_GFreedesktopDBus interface for a concrete class.
1457+ * The properties are overridden in the order they are defined.
1458+ *
1459+ * Returns: The last property id.
1460+ */
1461+guint
1462+_g_freedesktop_dbus_override_properties (GObjectClass *klass G_GNUC_UNUSED, guint property_id_begin)
1463+{
1464+  return property_id_begin - 1;
1465+}
1466+
1467+
1468+
1469+/**
1470+ * _GFreedesktopDBus:
1471+ *
1472+ * Abstract interface type for the D-Bus interface <link linkend="gdbus-interface-org-freedesktop-DBus.top_of_page">org.freedesktop.DBus</link>.
1473+ */
1474+
1475+/**
1476+ * _GFreedesktopDBusIface:
1477+ * @parent_iface: The parent interface.
1478+ * @handle_add_match: Handler for the #_GFreedesktopDBus::handle-add-match signal.
1479+ * @handle_get_connection_selinux_security_context: Handler for the #_GFreedesktopDBus::handle-get-connection-selinux-security-context signal.
1480+ * @handle_get_connection_unix_process_id: Handler for the #_GFreedesktopDBus::handle-get-connection-unix-process-id signal.
1481+ * @handle_get_connection_unix_user: Handler for the #_GFreedesktopDBus::handle-get-connection-unix-user signal.
1482+ * @handle_get_id: Handler for the #_GFreedesktopDBus::handle-get-id signal.
1483+ * @handle_get_name_owner: Handler for the #_GFreedesktopDBus::handle-get-name-owner signal.
1484+ * @handle_hello: Handler for the #_GFreedesktopDBus::handle-hello signal.
1485+ * @handle_list_activatable_names: Handler for the #_GFreedesktopDBus::handle-list-activatable-names signal.
1486+ * @handle_list_names: Handler for the #_GFreedesktopDBus::handle-list-names signal.
1487+ * @handle_list_queued_owners: Handler for the #_GFreedesktopDBus::handle-list-queued-owners signal.
1488+ * @handle_name_has_owner: Handler for the #_GFreedesktopDBus::handle-name-has-owner signal.
1489+ * @handle_release_name: Handler for the #_GFreedesktopDBus::handle-release-name signal.
1490+ * @handle_reload_config: Handler for the #_GFreedesktopDBus::handle-reload-config signal.
1491+ * @handle_remove_match: Handler for the #_GFreedesktopDBus::handle-remove-match signal.
1492+ * @handle_request_name: Handler for the #_GFreedesktopDBus::handle-request-name signal.
1493+ * @handle_start_service_by_name: Handler for the #_GFreedesktopDBus::handle-start-service-by-name signal.
1494+ * @handle_update_activation_environment: Handler for the #_GFreedesktopDBus::handle-update-activation-environment signal.
1495+ * @name_acquired: Handler for the #_GFreedesktopDBus::name-acquired signal.
1496+ * @name_lost: Handler for the #_GFreedesktopDBus::name-lost signal.
1497+ * @name_owner_changed: Handler for the #_GFreedesktopDBus::name-owner-changed signal.
1498+ *
1499+ * Virtual table for the D-Bus interface <link linkend="gdbus-interface-org-freedesktop-DBus.top_of_page">org.freedesktop.DBus</link>.
1500+ */
1501+
1502+typedef _GFreedesktopDBusIface _GFreedesktopDBusInterface;
1503+G_DEFINE_INTERFACE (_GFreedesktopDBus, _g_freedesktop_dbus, G_TYPE_OBJECT)
1504+
1505+static void
1506+_g_freedesktop_dbus_default_init (_GFreedesktopDBusIface *iface)
1507+{
1508+  /* GObject signals for incoming D-Bus method calls: */
1509+  /**
1510+   * _GFreedesktopDBus::handle-hello:
1511+   * @object: A #_GFreedesktopDBus.
1512+   * @invocation: A #GDBusMethodInvocation.
1513+   *
1514+   * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-freedesktop-DBus.Hello">Hello()</link> D-Bus method.
1515+   *
1516+   * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call _g_freedesktop_dbus_complete_hello() or e.g. g_dbus_method_invocation_return_error() on it) and no other signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
1517+   *
1518+   * Returns: %G_DBUS_METHOD_INVOCATION_HANDLED or %TRUE if the invocation was handled, %G_DBUS_METHOD_INVOCATION_UNHANDLED or %FALSE to let other signal handlers run.
1519+   */
1520+  g_signal_new ("handle-hello",
1521+    G_TYPE_FROM_INTERFACE (iface),
1522+    G_SIGNAL_RUN_LAST,
1523+    G_STRUCT_OFFSET (_GFreedesktopDBusIface, handle_hello),
1524+    g_signal_accumulator_true_handled,
1525+    NULL,
1526+    g_cclosure_marshal_generic,
1527+    G_TYPE_BOOLEAN,
1528+    1,
1529+    G_TYPE_DBUS_METHOD_INVOCATION);
1530+
1531+  /**
1532+   * _GFreedesktopDBus::handle-request-name:
1533+   * @object: A #_GFreedesktopDBus.
1534+   * @invocation: A #GDBusMethodInvocation.
1535+   * @arg_name: Argument passed by remote caller.
1536+   * @arg_flags: Argument passed by remote caller.
1537+   *
1538+   * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-freedesktop-DBus.RequestName">RequestName()</link> D-Bus method.
1539+   *
1540+   * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call _g_freedesktop_dbus_complete_request_name() or e.g. g_dbus_method_invocation_return_error() on it) and no other signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
1541+   *
1542+   * Returns: %G_DBUS_METHOD_INVOCATION_HANDLED or %TRUE if the invocation was handled, %G_DBUS_METHOD_INVOCATION_UNHANDLED or %FALSE to let other signal handlers run.
1543+   */
1544+  g_signal_new ("handle-request-name",
1545+    G_TYPE_FROM_INTERFACE (iface),
1546+    G_SIGNAL_RUN_LAST,
1547+    G_STRUCT_OFFSET (_GFreedesktopDBusIface, handle_request_name),
1548+    g_signal_accumulator_true_handled,
1549+    NULL,
1550+    g_cclosure_marshal_generic,
1551+    G_TYPE_BOOLEAN,
1552+    3,
1553+    G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_STRING, G_TYPE_UINT);
1554+
1555+  /**
1556+   * _GFreedesktopDBus::handle-release-name:
1557+   * @object: A #_GFreedesktopDBus.
1558+   * @invocation: A #GDBusMethodInvocation.
1559+   * @arg_name: Argument passed by remote caller.
1560+   *
1561+   * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-freedesktop-DBus.ReleaseName">ReleaseName()</link> D-Bus method.
1562+   *
1563+   * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call _g_freedesktop_dbus_complete_release_name() or e.g. g_dbus_method_invocation_return_error() on it) and no other signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
1564+   *
1565+   * Returns: %G_DBUS_METHOD_INVOCATION_HANDLED or %TRUE if the invocation was handled, %G_DBUS_METHOD_INVOCATION_UNHANDLED or %FALSE to let other signal handlers run.
1566+   */
1567+  g_signal_new ("handle-release-name",
1568+    G_TYPE_FROM_INTERFACE (iface),
1569+    G_SIGNAL_RUN_LAST,
1570+    G_STRUCT_OFFSET (_GFreedesktopDBusIface, handle_release_name),
1571+    g_signal_accumulator_true_handled,
1572+    NULL,
1573+    g_cclosure_marshal_generic,
1574+    G_TYPE_BOOLEAN,
1575+    2,
1576+    G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_STRING);
1577+
1578+  /**
1579+   * _GFreedesktopDBus::handle-start-service-by-name:
1580+   * @object: A #_GFreedesktopDBus.
1581+   * @invocation: A #GDBusMethodInvocation.
1582+   * @arg_name: Argument passed by remote caller.
1583+   * @arg_flags: Argument passed by remote caller.
1584+   *
1585+   * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-freedesktop-DBus.StartServiceByName">StartServiceByName()</link> D-Bus method.
1586+   *
1587+   * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call _g_freedesktop_dbus_complete_start_service_by_name() or e.g. g_dbus_method_invocation_return_error() on it) and no other signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
1588+   *
1589+   * Returns: %G_DBUS_METHOD_INVOCATION_HANDLED or %TRUE if the invocation was handled, %G_DBUS_METHOD_INVOCATION_UNHANDLED or %FALSE to let other signal handlers run.
1590+   */
1591+  g_signal_new ("handle-start-service-by-name",
1592+    G_TYPE_FROM_INTERFACE (iface),
1593+    G_SIGNAL_RUN_LAST,
1594+    G_STRUCT_OFFSET (_GFreedesktopDBusIface, handle_start_service_by_name),
1595+    g_signal_accumulator_true_handled,
1596+    NULL,
1597+    g_cclosure_marshal_generic,
1598+    G_TYPE_BOOLEAN,
1599+    3,
1600+    G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_STRING, G_TYPE_UINT);
1601+
1602+  /**
1603+   * _GFreedesktopDBus::handle-name-has-owner:
1604+   * @object: A #_GFreedesktopDBus.
1605+   * @invocation: A #GDBusMethodInvocation.
1606+   * @arg_name: Argument passed by remote caller.
1607+   *
1608+   * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-freedesktop-DBus.NameHasOwner">NameHasOwner()</link> D-Bus method.
1609+   *
1610+   * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call _g_freedesktop_dbus_complete_name_has_owner() or e.g. g_dbus_method_invocation_return_error() on it) and no other signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
1611+   *
1612+   * Returns: %G_DBUS_METHOD_INVOCATION_HANDLED or %TRUE if the invocation was handled, %G_DBUS_METHOD_INVOCATION_UNHANDLED or %FALSE to let other signal handlers run.
1613+   */
1614+  g_signal_new ("handle-name-has-owner",
1615+    G_TYPE_FROM_INTERFACE (iface),
1616+    G_SIGNAL_RUN_LAST,
1617+    G_STRUCT_OFFSET (_GFreedesktopDBusIface, handle_name_has_owner),
1618+    g_signal_accumulator_true_handled,
1619+    NULL,
1620+    g_cclosure_marshal_generic,
1621+    G_TYPE_BOOLEAN,
1622+    2,
1623+    G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_STRING);
1624+
1625+  /**
1626+   * _GFreedesktopDBus::handle-list-names:
1627+   * @object: A #_GFreedesktopDBus.
1628+   * @invocation: A #GDBusMethodInvocation.
1629+   *
1630+   * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-freedesktop-DBus.ListNames">ListNames()</link> D-Bus method.
1631+   *
1632+   * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call _g_freedesktop_dbus_complete_list_names() or e.g. g_dbus_method_invocation_return_error() on it) and no other signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
1633+   *
1634+   * Returns: %G_DBUS_METHOD_INVOCATION_HANDLED or %TRUE if the invocation was handled, %G_DBUS_METHOD_INVOCATION_UNHANDLED or %FALSE to let other signal handlers run.
1635+   */
1636+  g_signal_new ("handle-list-names",
1637+    G_TYPE_FROM_INTERFACE (iface),
1638+    G_SIGNAL_RUN_LAST,
1639+    G_STRUCT_OFFSET (_GFreedesktopDBusIface, handle_list_names),
1640+    g_signal_accumulator_true_handled,
1641+    NULL,
1642+    g_cclosure_marshal_generic,
1643+    G_TYPE_BOOLEAN,
1644+    1,
1645+    G_TYPE_DBUS_METHOD_INVOCATION);
1646+
1647+  /**
1648+   * _GFreedesktopDBus::handle-list-activatable-names:
1649+   * @object: A #_GFreedesktopDBus.
1650+   * @invocation: A #GDBusMethodInvocation.
1651+   *
1652+   * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-freedesktop-DBus.ListActivatableNames">ListActivatableNames()</link> D-Bus method.
1653+   *
1654+   * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call _g_freedesktop_dbus_complete_list_activatable_names() or e.g. g_dbus_method_invocation_return_error() on it) and no other signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
1655+   *
1656+   * Returns: %G_DBUS_METHOD_INVOCATION_HANDLED or %TRUE if the invocation was handled, %G_DBUS_METHOD_INVOCATION_UNHANDLED or %FALSE to let other signal handlers run.
1657+   */
1658+  g_signal_new ("handle-list-activatable-names",
1659+    G_TYPE_FROM_INTERFACE (iface),
1660+    G_SIGNAL_RUN_LAST,
1661+    G_STRUCT_OFFSET (_GFreedesktopDBusIface, handle_list_activatable_names),
1662+    g_signal_accumulator_true_handled,
1663+    NULL,
1664+    g_cclosure_marshal_generic,
1665+    G_TYPE_BOOLEAN,
1666+    1,
1667+    G_TYPE_DBUS_METHOD_INVOCATION);
1668+
1669+  /**
1670+   * _GFreedesktopDBus::handle-add-match:
1671+   * @object: A #_GFreedesktopDBus.
1672+   * @invocation: A #GDBusMethodInvocation.
1673+   * @arg_rule: Argument passed by remote caller.
1674+   *
1675+   * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-freedesktop-DBus.AddMatch">AddMatch()</link> D-Bus method.
1676+   *
1677+   * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call _g_freedesktop_dbus_complete_add_match() or e.g. g_dbus_method_invocation_return_error() on it) and no other signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
1678+   *
1679+   * Returns: %G_DBUS_METHOD_INVOCATION_HANDLED or %TRUE if the invocation was handled, %G_DBUS_METHOD_INVOCATION_UNHANDLED or %FALSE to let other signal handlers run.
1680+   */
1681+  g_signal_new ("handle-add-match",
1682+    G_TYPE_FROM_INTERFACE (iface),
1683+    G_SIGNAL_RUN_LAST,
1684+    G_STRUCT_OFFSET (_GFreedesktopDBusIface, handle_add_match),
1685+    g_signal_accumulator_true_handled,
1686+    NULL,
1687+    g_cclosure_marshal_generic,
1688+    G_TYPE_BOOLEAN,
1689+    2,
1690+    G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_STRING);
1691+
1692+  /**
1693+   * _GFreedesktopDBus::handle-remove-match:
1694+   * @object: A #_GFreedesktopDBus.
1695+   * @invocation: A #GDBusMethodInvocation.
1696+   * @arg_rule: Argument passed by remote caller.
1697+   *
1698+   * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-freedesktop-DBus.RemoveMatch">RemoveMatch()</link> D-Bus method.
1699+   *
1700+   * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call _g_freedesktop_dbus_complete_remove_match() or e.g. g_dbus_method_invocation_return_error() on it) and no other signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
1701+   *
1702+   * Returns: %G_DBUS_METHOD_INVOCATION_HANDLED or %TRUE if the invocation was handled, %G_DBUS_METHOD_INVOCATION_UNHANDLED or %FALSE to let other signal handlers run.
1703+   */
1704+  g_signal_new ("handle-remove-match",
1705+    G_TYPE_FROM_INTERFACE (iface),
1706+    G_SIGNAL_RUN_LAST,
1707+    G_STRUCT_OFFSET (_GFreedesktopDBusIface, handle_remove_match),
1708+    g_signal_accumulator_true_handled,
1709+    NULL,
1710+    g_cclosure_marshal_generic,
1711+    G_TYPE_BOOLEAN,
1712+    2,
1713+    G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_STRING);
1714+
1715+  /**
1716+   * _GFreedesktopDBus::handle-get-name-owner:
1717+   * @object: A #_GFreedesktopDBus.
1718+   * @invocation: A #GDBusMethodInvocation.
1719+   * @arg_name: Argument passed by remote caller.
1720+   *
1721+   * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-freedesktop-DBus.GetNameOwner">GetNameOwner()</link> D-Bus method.
1722+   *
1723+   * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call _g_freedesktop_dbus_complete_get_name_owner() or e.g. g_dbus_method_invocation_return_error() on it) and no other signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
1724+   *
1725+   * Returns: %G_DBUS_METHOD_INVOCATION_HANDLED or %TRUE if the invocation was handled, %G_DBUS_METHOD_INVOCATION_UNHANDLED or %FALSE to let other signal handlers run.
1726+   */
1727+  g_signal_new ("handle-get-name-owner",
1728+    G_TYPE_FROM_INTERFACE (iface),
1729+    G_SIGNAL_RUN_LAST,
1730+    G_STRUCT_OFFSET (_GFreedesktopDBusIface, handle_get_name_owner),
1731+    g_signal_accumulator_true_handled,
1732+    NULL,
1733+    g_cclosure_marshal_generic,
1734+    G_TYPE_BOOLEAN,
1735+    2,
1736+    G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_STRING);
1737+
1738+  /**
1739+   * _GFreedesktopDBus::handle-list-queued-owners:
1740+   * @object: A #_GFreedesktopDBus.
1741+   * @invocation: A #GDBusMethodInvocation.
1742+   * @arg_name: Argument passed by remote caller.
1743+   *
1744+   * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-freedesktop-DBus.ListQueuedOwners">ListQueuedOwners()</link> D-Bus method.
1745+   *
1746+   * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call _g_freedesktop_dbus_complete_list_queued_owners() or e.g. g_dbus_method_invocation_return_error() on it) and no other signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
1747+   *
1748+   * Returns: %G_DBUS_METHOD_INVOCATION_HANDLED or %TRUE if the invocation was handled, %G_DBUS_METHOD_INVOCATION_UNHANDLED or %FALSE to let other signal handlers run.
1749+   */
1750+  g_signal_new ("handle-list-queued-owners",
1751+    G_TYPE_FROM_INTERFACE (iface),
1752+    G_SIGNAL_RUN_LAST,
1753+    G_STRUCT_OFFSET (_GFreedesktopDBusIface, handle_list_queued_owners),
1754+    g_signal_accumulator_true_handled,
1755+    NULL,
1756+    g_cclosure_marshal_generic,
1757+    G_TYPE_BOOLEAN,
1758+    2,
1759+    G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_STRING);
1760+
1761+  /**
1762+   * _GFreedesktopDBus::handle-get-connection-unix-user:
1763+   * @object: A #_GFreedesktopDBus.
1764+   * @invocation: A #GDBusMethodInvocation.
1765+   * @arg_name: Argument passed by remote caller.
1766+   *
1767+   * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-freedesktop-DBus.GetConnectionUnixUser">GetConnectionUnixUser()</link> D-Bus method.
1768+   *
1769+   * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call _g_freedesktop_dbus_complete_get_connection_unix_user() or e.g. g_dbus_method_invocation_return_error() on it) and no other signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
1770+   *
1771+   * Returns: %G_DBUS_METHOD_INVOCATION_HANDLED or %TRUE if the invocation was handled, %G_DBUS_METHOD_INVOCATION_UNHANDLED or %FALSE to let other signal handlers run.
1772+   */
1773+  g_signal_new ("handle-get-connection-unix-user",
1774+    G_TYPE_FROM_INTERFACE (iface),
1775+    G_SIGNAL_RUN_LAST,
1776+    G_STRUCT_OFFSET (_GFreedesktopDBusIface, handle_get_connection_unix_user),
1777+    g_signal_accumulator_true_handled,
1778+    NULL,
1779+    g_cclosure_marshal_generic,
1780+    G_TYPE_BOOLEAN,
1781+    2,
1782+    G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_STRING);
1783+
1784+  /**
1785+   * _GFreedesktopDBus::handle-get-connection-unix-process-id:
1786+   * @object: A #_GFreedesktopDBus.
1787+   * @invocation: A #GDBusMethodInvocation.
1788+   * @arg_name: Argument passed by remote caller.
1789+   *
1790+   * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-freedesktop-DBus.GetConnectionUnixProcessID">GetConnectionUnixProcessID()</link> D-Bus method.
1791+   *
1792+   * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call _g_freedesktop_dbus_complete_get_connection_unix_process_id() or e.g. g_dbus_method_invocation_return_error() on it) and no other signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
1793+   *
1794+   * Returns: %G_DBUS_METHOD_INVOCATION_HANDLED or %TRUE if the invocation was handled, %G_DBUS_METHOD_INVOCATION_UNHANDLED or %FALSE to let other signal handlers run.
1795+   */
1796+  g_signal_new ("handle-get-connection-unix-process-id",
1797+    G_TYPE_FROM_INTERFACE (iface),
1798+    G_SIGNAL_RUN_LAST,
1799+    G_STRUCT_OFFSET (_GFreedesktopDBusIface, handle_get_connection_unix_process_id),
1800+    g_signal_accumulator_true_handled,
1801+    NULL,
1802+    g_cclosure_marshal_generic,
1803+    G_TYPE_BOOLEAN,
1804+    2,
1805+    G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_STRING);
1806+
1807+  /**
1808+   * _GFreedesktopDBus::handle-get-connection-selinux-security-context:
1809+   * @object: A #_GFreedesktopDBus.
1810+   * @invocation: A #GDBusMethodInvocation.
1811+   * @arg_name: Argument passed by remote caller.
1812+   *
1813+   * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-freedesktop-DBus.GetConnectionSELinuxSecurityContext">GetConnectionSELinuxSecurityContext()</link> D-Bus method.
1814+   *
1815+   * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call _g_freedesktop_dbus_complete_get_connection_selinux_security_context() or e.g. g_dbus_method_invocation_return_error() on it) and no other signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
1816+   *
1817+   * Returns: %G_DBUS_METHOD_INVOCATION_HANDLED or %TRUE if the invocation was handled, %G_DBUS_METHOD_INVOCATION_UNHANDLED or %FALSE to let other signal handlers run.
1818+   */
1819+  g_signal_new ("handle-get-connection-selinux-security-context",
1820+    G_TYPE_FROM_INTERFACE (iface),
1821+    G_SIGNAL_RUN_LAST,
1822+    G_STRUCT_OFFSET (_GFreedesktopDBusIface, handle_get_connection_selinux_security_context),
1823+    g_signal_accumulator_true_handled,
1824+    NULL,
1825+    g_cclosure_marshal_generic,
1826+    G_TYPE_BOOLEAN,
1827+    2,
1828+    G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_STRING);
1829+
1830+  /**
1831+   * _GFreedesktopDBus::handle-update-activation-environment:
1832+   * @object: A #_GFreedesktopDBus.
1833+   * @invocation: A #GDBusMethodInvocation.
1834+   * @arg_environment: Argument passed by remote caller.
1835+   *
1836+   * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-freedesktop-DBus.UpdateActivationEnvironment">UpdateActivationEnvironment()</link> D-Bus method.
1837+   *
1838+   * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call _g_freedesktop_dbus_complete_update_activation_environment() or e.g. g_dbus_method_invocation_return_error() on it) and no other signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
1839+   *
1840+   * Returns: %G_DBUS_METHOD_INVOCATION_HANDLED or %TRUE if the invocation was handled, %G_DBUS_METHOD_INVOCATION_UNHANDLED or %FALSE to let other signal handlers run.
1841+   */
1842+  g_signal_new ("handle-update-activation-environment",
1843+    G_TYPE_FROM_INTERFACE (iface),
1844+    G_SIGNAL_RUN_LAST,
1845+    G_STRUCT_OFFSET (_GFreedesktopDBusIface, handle_update_activation_environment),
1846+    g_signal_accumulator_true_handled,
1847+    NULL,
1848+    g_cclosure_marshal_generic,
1849+    G_TYPE_BOOLEAN,
1850+    2,
1851+    G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_VARIANT);
1852+
1853+  /**
1854+   * _GFreedesktopDBus::handle-reload-config:
1855+   * @object: A #_GFreedesktopDBus.
1856+   * @invocation: A #GDBusMethodInvocation.
1857+   *
1858+   * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-freedesktop-DBus.ReloadConfig">ReloadConfig()</link> D-Bus method.
1859+   *
1860+   * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call _g_freedesktop_dbus_complete_reload_config() or e.g. g_dbus_method_invocation_return_error() on it) and no other signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
1861+   *
1862+   * Returns: %G_DBUS_METHOD_INVOCATION_HANDLED or %TRUE if the invocation was handled, %G_DBUS_METHOD_INVOCATION_UNHANDLED or %FALSE to let other signal handlers run.
1863+   */
1864+  g_signal_new ("handle-reload-config",
1865+    G_TYPE_FROM_INTERFACE (iface),
1866+    G_SIGNAL_RUN_LAST,
1867+    G_STRUCT_OFFSET (_GFreedesktopDBusIface, handle_reload_config),
1868+    g_signal_accumulator_true_handled,
1869+    NULL,
1870+    g_cclosure_marshal_generic,
1871+    G_TYPE_BOOLEAN,
1872+    1,
1873+    G_TYPE_DBUS_METHOD_INVOCATION);
1874+
1875+  /**
1876+   * _GFreedesktopDBus::handle-get-id:
1877+   * @object: A #_GFreedesktopDBus.
1878+   * @invocation: A #GDBusMethodInvocation.
1879+   *
1880+   * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-freedesktop-DBus.GetId">GetId()</link> D-Bus method.
1881+   *
1882+   * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call _g_freedesktop_dbus_complete_get_id() or e.g. g_dbus_method_invocation_return_error() on it) and no other signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
1883+   *
1884+   * Returns: %G_DBUS_METHOD_INVOCATION_HANDLED or %TRUE if the invocation was handled, %G_DBUS_METHOD_INVOCATION_UNHANDLED or %FALSE to let other signal handlers run.
1885+   */
1886+  g_signal_new ("handle-get-id",
1887+    G_TYPE_FROM_INTERFACE (iface),
1888+    G_SIGNAL_RUN_LAST,
1889+    G_STRUCT_OFFSET (_GFreedesktopDBusIface, handle_get_id),
1890+    g_signal_accumulator_true_handled,
1891+    NULL,
1892+    g_cclosure_marshal_generic,
1893+    G_TYPE_BOOLEAN,
1894+    1,
1895+    G_TYPE_DBUS_METHOD_INVOCATION);
1896+
1897+  /* GObject signals for received D-Bus signals: */
1898+  /**
1899+   * _GFreedesktopDBus::name-owner-changed:
1900+   * @object: A #_GFreedesktopDBus.
1901+   * @arg_name: Argument.
1902+   * @arg_old_owner: Argument.
1903+   * @arg_new_owner: Argument.
1904+   *
1905+   * On the client-side, this signal is emitted whenever the D-Bus signal <link linkend="gdbus-signal-org-freedesktop-DBus.NameOwnerChanged">"NameOwnerChanged"</link> is received.
1906+   *
1907+   * On the service-side, this signal can be used with e.g. g_signal_emit_by_name() to make the object emit the D-Bus signal.
1908+   */
1909+  g_signal_new ("name-owner-changed",
1910+    G_TYPE_FROM_INTERFACE (iface),
1911+    G_SIGNAL_RUN_LAST,
1912+    G_STRUCT_OFFSET (_GFreedesktopDBusIface, name_owner_changed),
1913+    NULL,
1914+    NULL,
1915+    g_cclosure_marshal_generic,
1916+    G_TYPE_NONE,
1917+    3, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING);
1918+
1919+  /**
1920+   * _GFreedesktopDBus::name-lost:
1921+   * @object: A #_GFreedesktopDBus.
1922+   * @arg_name: Argument.
1923+   *
1924+   * On the client-side, this signal is emitted whenever the D-Bus signal <link linkend="gdbus-signal-org-freedesktop-DBus.NameLost">"NameLost"</link> is received.
1925+   *
1926+   * On the service-side, this signal can be used with e.g. g_signal_emit_by_name() to make the object emit the D-Bus signal.
1927+   */
1928+  g_signal_new ("name-lost",
1929+    G_TYPE_FROM_INTERFACE (iface),
1930+    G_SIGNAL_RUN_LAST,
1931+    G_STRUCT_OFFSET (_GFreedesktopDBusIface, name_lost),
1932+    NULL,
1933+    NULL,
1934+    g_cclosure_marshal_generic,
1935+    G_TYPE_NONE,
1936+    1, G_TYPE_STRING);
1937+
1938+  /**
1939+   * _GFreedesktopDBus::name-acquired:
1940+   * @object: A #_GFreedesktopDBus.
1941+   * @arg_name: Argument.
1942+   *
1943+   * On the client-side, this signal is emitted whenever the D-Bus signal <link linkend="gdbus-signal-org-freedesktop-DBus.NameAcquired">"NameAcquired"</link> is received.
1944+   *
1945+   * On the service-side, this signal can be used with e.g. g_signal_emit_by_name() to make the object emit the D-Bus signal.
1946+   */
1947+  g_signal_new ("name-acquired",
1948+    G_TYPE_FROM_INTERFACE (iface),
1949+    G_SIGNAL_RUN_LAST,
1950+    G_STRUCT_OFFSET (_GFreedesktopDBusIface, name_acquired),
1951+    NULL,
1952+    NULL,
1953+    g_cclosure_marshal_generic,
1954+    G_TYPE_NONE,
1955+    1, G_TYPE_STRING);
1956+
1957+}
1958+
1959+/**
1960+ * _g_freedesktop_dbus_emit_name_owner_changed:
1961+ * @object: A #_GFreedesktopDBus.
1962+ * @arg_name: Argument to pass with the signal.
1963+ * @arg_old_owner: Argument to pass with the signal.
1964+ * @arg_new_owner: Argument to pass with the signal.
1965+ *
1966+ * Emits the <link linkend="gdbus-signal-org-freedesktop-DBus.NameOwnerChanged">"NameOwnerChanged"</link> D-Bus signal.
1967+ */
1968+void
1969+_g_freedesktop_dbus_emit_name_owner_changed (
1970+    _GFreedesktopDBus *object,
1971+    const gchar *arg_name,
1972+    const gchar *arg_old_owner,
1973+    const gchar *arg_new_owner)
1974+{
1975+  g_signal_emit_by_name (object, "name-owner-changed", arg_name, arg_old_owner, arg_new_owner);
1976+}
1977+
1978+/**
1979+ * _g_freedesktop_dbus_emit_name_lost:
1980+ * @object: A #_GFreedesktopDBus.
1981+ * @arg_name: Argument to pass with the signal.
1982+ *
1983+ * Emits the <link linkend="gdbus-signal-org-freedesktop-DBus.NameLost">"NameLost"</link> D-Bus signal.
1984+ */
1985+void
1986+_g_freedesktop_dbus_emit_name_lost (
1987+    _GFreedesktopDBus *object,
1988+    const gchar *arg_name)
1989+{
1990+  g_signal_emit_by_name (object, "name-lost", arg_name);
1991+}
1992+
1993+/**
1994+ * _g_freedesktop_dbus_emit_name_acquired:
1995+ * @object: A #_GFreedesktopDBus.
1996+ * @arg_name: Argument to pass with the signal.
1997+ *
1998+ * Emits the <link linkend="gdbus-signal-org-freedesktop-DBus.NameAcquired">"NameAcquired"</link> D-Bus signal.
1999+ */
2000+void
2001+_g_freedesktop_dbus_emit_name_acquired (
2002+    _GFreedesktopDBus *object,
2003+    const gchar *arg_name)
2004+{
2005+  g_signal_emit_by_name (object, "name-acquired", arg_name);
2006+}
2007+
2008+/**
2009+ * _g_freedesktop_dbus_call_hello:
2010+ * @proxy: A #_GFreedesktopDBusProxy.
2011+ * @cancellable: (nullable): A #GCancellable or %NULL.
2012+ * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
2013+ * @user_data: User data to pass to @callback.
2014+ *
2015+ * Asynchronously invokes the <link linkend="gdbus-method-org-freedesktop-DBus.Hello">Hello()</link> D-Bus method on @proxy.
2016+ * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from (see g_main_context_push_thread_default()).
2017+ * You can then call _g_freedesktop_dbus_call_hello_finish() to get the result of the operation.
2018+ *
2019+ * See _g_freedesktop_dbus_call_hello_sync() for the synchronous, blocking version of this method.
2020+ */
2021+void
2022+_g_freedesktop_dbus_call_hello (
2023+    _GFreedesktopDBus *proxy,
2024+    GCancellable *cancellable,
2025+    GAsyncReadyCallback callback,
2026+    gpointer user_data)
2027+{
2028+  g_dbus_proxy_call (G_DBUS_PROXY (proxy),
2029+    "Hello",
2030+    g_variant_new ("()"),
2031+    G_DBUS_CALL_FLAGS_NONE,
2032+    -1,
2033+    cancellable,
2034+    callback,
2035+    user_data);
2036+}
2037+
2038+/**
2039+ * _g_freedesktop_dbus_call_hello_finish:
2040+ * @proxy: A #_GFreedesktopDBusProxy.
2041+ * @out_assigned_name: (out) (optional): Return location for return parameter or %NULL to ignore.
2042+ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to _g_freedesktop_dbus_call_hello().
2043+ * @error: Return location for error or %NULL.
2044+ *
2045+ * Finishes an operation started with _g_freedesktop_dbus_call_hello().
2046+ *
2047+ * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
2048+ */
2049+gboolean
2050+_g_freedesktop_dbus_call_hello_finish (
2051+    _GFreedesktopDBus *proxy,
2052+    gchar **out_assigned_name,
2053+    GAsyncResult *res,
2054+    GError **error)
2055+{
2056+  GVariant *_ret;
2057+  _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
2058+  if (_ret == NULL)
2059+    goto _out;
2060+  g_variant_get (_ret,
2061+                 "(s)",
2062+                 out_assigned_name);
2063+  g_variant_unref (_ret);
2064+_out:
2065+  return _ret != NULL;
2066+}
2067+
2068+/**
2069+ * _g_freedesktop_dbus_call_hello_sync:
2070+ * @proxy: A #_GFreedesktopDBusProxy.
2071+ * @out_assigned_name: (out) (optional): Return location for return parameter or %NULL to ignore.
2072+ * @cancellable: (nullable): A #GCancellable or %NULL.
2073+ * @error: Return location for error or %NULL.
2074+ *
2075+ * Synchronously invokes the <link linkend="gdbus-method-org-freedesktop-DBus.Hello">Hello()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
2076+ *
2077+ * See _g_freedesktop_dbus_call_hello() for the asynchronous version of this method.
2078+ *
2079+ * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
2080+ */
2081+gboolean
2082+_g_freedesktop_dbus_call_hello_sync (
2083+    _GFreedesktopDBus *proxy,
2084+    gchar **out_assigned_name,
2085+    GCancellable *cancellable,
2086+    GError **error)
2087+{
2088+  GVariant *_ret;
2089+  _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
2090+    "Hello",
2091+    g_variant_new ("()"),
2092+    G_DBUS_CALL_FLAGS_NONE,
2093+    -1,
2094+    cancellable,
2095+    error);
2096+  if (_ret == NULL)
2097+    goto _out;
2098+  g_variant_get (_ret,
2099+                 "(s)",
2100+                 out_assigned_name);
2101+  g_variant_unref (_ret);
2102+_out:
2103+  return _ret != NULL;
2104+}
2105+
2106+/**
2107+ * _g_freedesktop_dbus_call_request_name:
2108+ * @proxy: A #_GFreedesktopDBusProxy.
2109+ * @arg_name: Argument to pass with the method invocation.
2110+ * @arg_flags: Argument to pass with the method invocation.
2111+ * @cancellable: (nullable): A #GCancellable or %NULL.
2112+ * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
2113+ * @user_data: User data to pass to @callback.
2114+ *
2115+ * Asynchronously invokes the <link linkend="gdbus-method-org-freedesktop-DBus.RequestName">RequestName()</link> D-Bus method on @proxy.
2116+ * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from (see g_main_context_push_thread_default()).
2117+ * You can then call _g_freedesktop_dbus_call_request_name_finish() to get the result of the operation.
2118+ *
2119+ * See _g_freedesktop_dbus_call_request_name_sync() for the synchronous, blocking version of this method.
2120+ */
2121+void
2122+_g_freedesktop_dbus_call_request_name (
2123+    _GFreedesktopDBus *proxy,
2124+    const gchar *arg_name,
2125+    guint arg_flags,
2126+    GCancellable *cancellable,
2127+    GAsyncReadyCallback callback,
2128+    gpointer user_data)
2129+{
2130+  g_dbus_proxy_call (G_DBUS_PROXY (proxy),
2131+    "RequestName",
2132+    g_variant_new ("(su)",
2133+                   arg_name,
2134+                   arg_flags),
2135+    G_DBUS_CALL_FLAGS_NONE,
2136+    -1,
2137+    cancellable,
2138+    callback,
2139+    user_data);
2140+}
2141+
2142+/**
2143+ * _g_freedesktop_dbus_call_request_name_finish:
2144+ * @proxy: A #_GFreedesktopDBusProxy.
2145+ * @out_value: (out) (optional): Return location for return parameter or %NULL to ignore.
2146+ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to _g_freedesktop_dbus_call_request_name().
2147+ * @error: Return location for error or %NULL.
2148+ *
2149+ * Finishes an operation started with _g_freedesktop_dbus_call_request_name().
2150+ *
2151+ * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
2152+ */
2153+gboolean
2154+_g_freedesktop_dbus_call_request_name_finish (
2155+    _GFreedesktopDBus *proxy,
2156+    guint *out_value,
2157+    GAsyncResult *res,
2158+    GError **error)
2159+{
2160+  GVariant *_ret;
2161+  _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
2162+  if (_ret == NULL)
2163+    goto _out;
2164+  g_variant_get (_ret,
2165+                 "(u)",
2166+                 out_value);
2167+  g_variant_unref (_ret);
2168+_out:
2169+  return _ret != NULL;
2170+}
2171+
2172+/**
2173+ * _g_freedesktop_dbus_call_request_name_sync:
2174+ * @proxy: A #_GFreedesktopDBusProxy.
2175+ * @arg_name: Argument to pass with the method invocation.
2176+ * @arg_flags: Argument to pass with the method invocation.
2177+ * @out_value: (out) (optional): Return location for return parameter or %NULL to ignore.
2178+ * @cancellable: (nullable): A #GCancellable or %NULL.
2179+ * @error: Return location for error or %NULL.
2180+ *
2181+ * Synchronously invokes the <link linkend="gdbus-method-org-freedesktop-DBus.RequestName">RequestName()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
2182+ *
2183+ * See _g_freedesktop_dbus_call_request_name() for the asynchronous version of this method.
2184+ *
2185+ * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
2186+ */
2187+gboolean
2188+_g_freedesktop_dbus_call_request_name_sync (
2189+    _GFreedesktopDBus *proxy,
2190+    const gchar *arg_name,
2191+    guint arg_flags,
2192+    guint *out_value,
2193+    GCancellable *cancellable,
2194+    GError **error)
2195+{
2196+  GVariant *_ret;
2197+  _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
2198+    "RequestName",
2199+    g_variant_new ("(su)",
2200+                   arg_name,
2201+                   arg_flags),
2202+    G_DBUS_CALL_FLAGS_NONE,
2203+    -1,
2204+    cancellable,
2205+    error);
2206+  if (_ret == NULL)
2207+    goto _out;
2208+  g_variant_get (_ret,
2209+                 "(u)",
2210+                 out_value);
2211+  g_variant_unref (_ret);
2212+_out:
2213+  return _ret != NULL;
2214+}
2215+
2216+/**
2217+ * _g_freedesktop_dbus_call_release_name:
2218+ * @proxy: A #_GFreedesktopDBusProxy.
2219+ * @arg_name: Argument to pass with the method invocation.
2220+ * @cancellable: (nullable): A #GCancellable or %NULL.
2221+ * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
2222+ * @user_data: User data to pass to @callback.
2223+ *
2224+ * Asynchronously invokes the <link linkend="gdbus-method-org-freedesktop-DBus.ReleaseName">ReleaseName()</link> D-Bus method on @proxy.
2225+ * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from (see g_main_context_push_thread_default()).
2226+ * You can then call _g_freedesktop_dbus_call_release_name_finish() to get the result of the operation.
2227+ *
2228+ * See _g_freedesktop_dbus_call_release_name_sync() for the synchronous, blocking version of this method.
2229+ */
2230+void
2231+_g_freedesktop_dbus_call_release_name (
2232+    _GFreedesktopDBus *proxy,
2233+    const gchar *arg_name,
2234+    GCancellable *cancellable,
2235+    GAsyncReadyCallback callback,
2236+    gpointer user_data)
2237+{
2238+  g_dbus_proxy_call (G_DBUS_PROXY (proxy),
2239+    "ReleaseName",
2240+    g_variant_new ("(s)",
2241+                   arg_name),
2242+    G_DBUS_CALL_FLAGS_NONE,
2243+    -1,
2244+    cancellable,
2245+    callback,
2246+    user_data);
2247+}
2248+
2249+/**
2250+ * _g_freedesktop_dbus_call_release_name_finish:
2251+ * @proxy: A #_GFreedesktopDBusProxy.
2252+ * @out_value: (out) (optional): Return location for return parameter or %NULL to ignore.
2253+ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to _g_freedesktop_dbus_call_release_name().
2254+ * @error: Return location for error or %NULL.
2255+ *
2256+ * Finishes an operation started with _g_freedesktop_dbus_call_release_name().
2257+ *
2258+ * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
2259+ */
2260+gboolean
2261+_g_freedesktop_dbus_call_release_name_finish (
2262+    _GFreedesktopDBus *proxy,
2263+    guint *out_value,
2264+    GAsyncResult *res,
2265+    GError **error)
2266+{
2267+  GVariant *_ret;
2268+  _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
2269+  if (_ret == NULL)
2270+    goto _out;
2271+  g_variant_get (_ret,
2272+                 "(u)",
2273+                 out_value);
2274+  g_variant_unref (_ret);
2275+_out:
2276+  return _ret != NULL;
2277+}
2278+
2279+/**
2280+ * _g_freedesktop_dbus_call_release_name_sync:
2281+ * @proxy: A #_GFreedesktopDBusProxy.
2282+ * @arg_name: Argument to pass with the method invocation.
2283+ * @out_value: (out) (optional): Return location for return parameter or %NULL to ignore.
2284+ * @cancellable: (nullable): A #GCancellable or %NULL.
2285+ * @error: Return location for error or %NULL.
2286+ *
2287+ * Synchronously invokes the <link linkend="gdbus-method-org-freedesktop-DBus.ReleaseName">ReleaseName()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
2288+ *
2289+ * See _g_freedesktop_dbus_call_release_name() for the asynchronous version of this method.
2290+ *
2291+ * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
2292+ */
2293+gboolean
2294+_g_freedesktop_dbus_call_release_name_sync (
2295+    _GFreedesktopDBus *proxy,
2296+    const gchar *arg_name,
2297+    guint *out_value,
2298+    GCancellable *cancellable,
2299+    GError **error)
2300+{
2301+  GVariant *_ret;
2302+  _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
2303+    "ReleaseName",
2304+    g_variant_new ("(s)",
2305+                   arg_name),
2306+    G_DBUS_CALL_FLAGS_NONE,
2307+    -1,
2308+    cancellable,
2309+    error);
2310+  if (_ret == NULL)
2311+    goto _out;
2312+  g_variant_get (_ret,
2313+                 "(u)",
2314+                 out_value);
2315+  g_variant_unref (_ret);
2316+_out:
2317+  return _ret != NULL;
2318+}
2319+
2320+/**
2321+ * _g_freedesktop_dbus_call_start_service_by_name:
2322+ * @proxy: A #_GFreedesktopDBusProxy.
2323+ * @arg_name: Argument to pass with the method invocation.
2324+ * @arg_flags: Argument to pass with the method invocation.
2325+ * @cancellable: (nullable): A #GCancellable or %NULL.
2326+ * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
2327+ * @user_data: User data to pass to @callback.
2328+ *
2329+ * Asynchronously invokes the <link linkend="gdbus-method-org-freedesktop-DBus.StartServiceByName">StartServiceByName()</link> D-Bus method on @proxy.
2330+ * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from (see g_main_context_push_thread_default()).
2331+ * You can then call _g_freedesktop_dbus_call_start_service_by_name_finish() to get the result of the operation.
2332+ *
2333+ * See _g_freedesktop_dbus_call_start_service_by_name_sync() for the synchronous, blocking version of this method.
2334+ */
2335+void
2336+_g_freedesktop_dbus_call_start_service_by_name (
2337+    _GFreedesktopDBus *proxy,
2338+    const gchar *arg_name,
2339+    guint arg_flags,
2340+    GCancellable *cancellable,
2341+    GAsyncReadyCallback callback,
2342+    gpointer user_data)
2343+{
2344+  g_dbus_proxy_call (G_DBUS_PROXY (proxy),
2345+    "StartServiceByName",
2346+    g_variant_new ("(su)",
2347+                   arg_name,
2348+                   arg_flags),
2349+    G_DBUS_CALL_FLAGS_NONE,
2350+    -1,
2351+    cancellable,
2352+    callback,
2353+    user_data);
2354+}
2355+
2356+/**
2357+ * _g_freedesktop_dbus_call_start_service_by_name_finish:
2358+ * @proxy: A #_GFreedesktopDBusProxy.
2359+ * @out_value: (out) (optional): Return location for return parameter or %NULL to ignore.
2360+ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to _g_freedesktop_dbus_call_start_service_by_name().
2361+ * @error: Return location for error or %NULL.
2362+ *
2363+ * Finishes an operation started with _g_freedesktop_dbus_call_start_service_by_name().
2364+ *
2365+ * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
2366+ */
2367+gboolean
2368+_g_freedesktop_dbus_call_start_service_by_name_finish (
2369+    _GFreedesktopDBus *proxy,
2370+    guint *out_value,
2371+    GAsyncResult *res,
2372+    GError **error)
2373+{
2374+  GVariant *_ret;
2375+  _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
2376+  if (_ret == NULL)
2377+    goto _out;
2378+  g_variant_get (_ret,
2379+                 "(u)",
2380+                 out_value);
2381+  g_variant_unref (_ret);
2382+_out:
2383+  return _ret != NULL;
2384+}
2385+
2386+/**
2387+ * _g_freedesktop_dbus_call_start_service_by_name_sync:
2388+ * @proxy: A #_GFreedesktopDBusProxy.
2389+ * @arg_name: Argument to pass with the method invocation.
2390+ * @arg_flags: Argument to pass with the method invocation.
2391+ * @out_value: (out) (optional): Return location for return parameter or %NULL to ignore.
2392+ * @cancellable: (nullable): A #GCancellable or %NULL.
2393+ * @error: Return location for error or %NULL.
2394+ *
2395+ * Synchronously invokes the <link linkend="gdbus-method-org-freedesktop-DBus.StartServiceByName">StartServiceByName()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
2396+ *
2397+ * See _g_freedesktop_dbus_call_start_service_by_name() for the asynchronous version of this method.
2398+ *
2399+ * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
2400+ */
2401+gboolean
2402+_g_freedesktop_dbus_call_start_service_by_name_sync (
2403+    _GFreedesktopDBus *proxy,
2404+    const gchar *arg_name,
2405+    guint arg_flags,
2406+    guint *out_value,
2407+    GCancellable *cancellable,
2408+    GError **error)
2409+{
2410+  GVariant *_ret;
2411+  _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
2412+    "StartServiceByName",
2413+    g_variant_new ("(su)",
2414+                   arg_name,
2415+                   arg_flags),
2416+    G_DBUS_CALL_FLAGS_NONE,
2417+    -1,
2418+    cancellable,
2419+    error);
2420+  if (_ret == NULL)
2421+    goto _out;
2422+  g_variant_get (_ret,
2423+                 "(u)",
2424+                 out_value);
2425+  g_variant_unref (_ret);
2426+_out:
2427+  return _ret != NULL;
2428+}
2429+
2430+/**
2431+ * _g_freedesktop_dbus_call_name_has_owner:
2432+ * @proxy: A #_GFreedesktopDBusProxy.
2433+ * @arg_name: Argument to pass with the method invocation.
2434+ * @cancellable: (nullable): A #GCancellable or %NULL.
2435+ * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
2436+ * @user_data: User data to pass to @callback.
2437+ *
2438+ * Asynchronously invokes the <link linkend="gdbus-method-org-freedesktop-DBus.NameHasOwner">NameHasOwner()</link> D-Bus method on @proxy.
2439+ * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from (see g_main_context_push_thread_default()).
2440+ * You can then call _g_freedesktop_dbus_call_name_has_owner_finish() to get the result of the operation.
2441+ *
2442+ * See _g_freedesktop_dbus_call_name_has_owner_sync() for the synchronous, blocking version of this method.
2443+ */
2444+void
2445+_g_freedesktop_dbus_call_name_has_owner (
2446+    _GFreedesktopDBus *proxy,
2447+    const gchar *arg_name,
2448+    GCancellable *cancellable,
2449+    GAsyncReadyCallback callback,
2450+    gpointer user_data)
2451+{
2452+  g_dbus_proxy_call (G_DBUS_PROXY (proxy),
2453+    "NameHasOwner",
2454+    g_variant_new ("(s)",
2455+                   arg_name),
2456+    G_DBUS_CALL_FLAGS_NONE,
2457+    -1,
2458+    cancellable,
2459+    callback,
2460+    user_data);
2461+}
2462+
2463+/**
2464+ * _g_freedesktop_dbus_call_name_has_owner_finish:
2465+ * @proxy: A #_GFreedesktopDBusProxy.
2466+ * @out_has_owner: (out) (optional): Return location for return parameter or %NULL to ignore.
2467+ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to _g_freedesktop_dbus_call_name_has_owner().
2468+ * @error: Return location for error or %NULL.
2469+ *
2470+ * Finishes an operation started with _g_freedesktop_dbus_call_name_has_owner().
2471+ *
2472+ * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
2473+ */
2474+gboolean
2475+_g_freedesktop_dbus_call_name_has_owner_finish (
2476+    _GFreedesktopDBus *proxy,
2477+    gboolean *out_has_owner,
2478+    GAsyncResult *res,
2479+    GError **error)
2480+{
2481+  GVariant *_ret;
2482+  _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
2483+  if (_ret == NULL)
2484+    goto _out;
2485+  g_variant_get (_ret,
2486+                 "(b)",
2487+                 out_has_owner);
2488+  g_variant_unref (_ret);
2489+_out:
2490+  return _ret != NULL;
2491+}
2492+
2493+/**
2494+ * _g_freedesktop_dbus_call_name_has_owner_sync:
2495+ * @proxy: A #_GFreedesktopDBusProxy.
2496+ * @arg_name: Argument to pass with the method invocation.
2497+ * @out_has_owner: (out) (optional): Return location for return parameter or %NULL to ignore.
2498+ * @cancellable: (nullable): A #GCancellable or %NULL.
2499+ * @error: Return location for error or %NULL.
2500+ *
2501+ * Synchronously invokes the <link linkend="gdbus-method-org-freedesktop-DBus.NameHasOwner">NameHasOwner()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
2502+ *
2503+ * See _g_freedesktop_dbus_call_name_has_owner() for the asynchronous version of this method.
2504+ *
2505+ * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
2506+ */
2507+gboolean
2508+_g_freedesktop_dbus_call_name_has_owner_sync (
2509+    _GFreedesktopDBus *proxy,
2510+    const gchar *arg_name,
2511+    gboolean *out_has_owner,
2512+    GCancellable *cancellable,
2513+    GError **error)
2514+{
2515+  GVariant *_ret;
2516+  _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
2517+    "NameHasOwner",
2518+    g_variant_new ("(s)",
2519+                   arg_name),
2520+    G_DBUS_CALL_FLAGS_NONE,
2521+    -1,
2522+    cancellable,
2523+    error);
2524+  if (_ret == NULL)
2525+    goto _out;
2526+  g_variant_get (_ret,
2527+                 "(b)",
2528+                 out_has_owner);
2529+  g_variant_unref (_ret);
2530+_out:
2531+  return _ret != NULL;
2532+}
2533+
2534+/**
2535+ * _g_freedesktop_dbus_call_list_names:
2536+ * @proxy: A #_GFreedesktopDBusProxy.
2537+ * @cancellable: (nullable): A #GCancellable or %NULL.
2538+ * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
2539+ * @user_data: User data to pass to @callback.
2540+ *
2541+ * Asynchronously invokes the <link linkend="gdbus-method-org-freedesktop-DBus.ListNames">ListNames()</link> D-Bus method on @proxy.
2542+ * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from (see g_main_context_push_thread_default()).
2543+ * You can then call _g_freedesktop_dbus_call_list_names_finish() to get the result of the operation.
2544+ *
2545+ * See _g_freedesktop_dbus_call_list_names_sync() for the synchronous, blocking version of this method.
2546+ */
2547+void
2548+_g_freedesktop_dbus_call_list_names (
2549+    _GFreedesktopDBus *proxy,
2550+    GCancellable *cancellable,
2551+    GAsyncReadyCallback callback,
2552+    gpointer user_data)
2553+{
2554+  g_dbus_proxy_call (G_DBUS_PROXY (proxy),
2555+    "ListNames",
2556+    g_variant_new ("()"),
2557+    G_DBUS_CALL_FLAGS_NONE,
2558+    -1,
2559+    cancellable,
2560+    callback,
2561+    user_data);
2562+}
2563+
2564+/**
2565+ * _g_freedesktop_dbus_call_list_names_finish:
2566+ * @proxy: A #_GFreedesktopDBusProxy.
2567+ * @out_names: (out) (optional) (array zero-terminated=1): Return location for return parameter or %NULL to ignore.
2568+ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to _g_freedesktop_dbus_call_list_names().
2569+ * @error: Return location for error or %NULL.
2570+ *
2571+ * Finishes an operation started with _g_freedesktop_dbus_call_list_names().
2572+ *
2573+ * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
2574+ */
2575+gboolean
2576+_g_freedesktop_dbus_call_list_names_finish (
2577+    _GFreedesktopDBus *proxy,
2578+    gchar ***out_names,
2579+    GAsyncResult *res,
2580+    GError **error)
2581+{
2582+  GVariant *_ret;
2583+  _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
2584+  if (_ret == NULL)
2585+    goto _out;
2586+  g_variant_get (_ret,
2587+                 "(^as)",
2588+                 out_names);
2589+  g_variant_unref (_ret);
2590+_out:
2591+  return _ret != NULL;
2592+}
2593+
2594+/**
2595+ * _g_freedesktop_dbus_call_list_names_sync:
2596+ * @proxy: A #_GFreedesktopDBusProxy.
2597+ * @out_names: (out) (optional) (array zero-terminated=1): Return location for return parameter or %NULL to ignore.
2598+ * @cancellable: (nullable): A #GCancellable or %NULL.
2599+ * @error: Return location for error or %NULL.
2600+ *
2601+ * Synchronously invokes the <link linkend="gdbus-method-org-freedesktop-DBus.ListNames">ListNames()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
2602+ *
2603+ * See _g_freedesktop_dbus_call_list_names() for the asynchronous version of this method.
2604+ *
2605+ * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
2606+ */
2607+gboolean
2608+_g_freedesktop_dbus_call_list_names_sync (
2609+    _GFreedesktopDBus *proxy,
2610+    gchar ***out_names,
2611+    GCancellable *cancellable,
2612+    GError **error)
2613+{
2614+  GVariant *_ret;
2615+  _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
2616+    "ListNames",
2617+    g_variant_new ("()"),
2618+    G_DBUS_CALL_FLAGS_NONE,
2619+    -1,
2620+    cancellable,
2621+    error);
2622+  if (_ret == NULL)
2623+    goto _out;
2624+  g_variant_get (_ret,
2625+                 "(^as)",
2626+                 out_names);
2627+  g_variant_unref (_ret);
2628+_out:
2629+  return _ret != NULL;
2630+}
2631+
2632+/**
2633+ * _g_freedesktop_dbus_call_list_activatable_names:
2634+ * @proxy: A #_GFreedesktopDBusProxy.
2635+ * @cancellable: (nullable): A #GCancellable or %NULL.
2636+ * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
2637+ * @user_data: User data to pass to @callback.
2638+ *
2639+ * Asynchronously invokes the <link linkend="gdbus-method-org-freedesktop-DBus.ListActivatableNames">ListActivatableNames()</link> D-Bus method on @proxy.
2640+ * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from (see g_main_context_push_thread_default()).
2641+ * You can then call _g_freedesktop_dbus_call_list_activatable_names_finish() to get the result of the operation.
2642+ *
2643+ * See _g_freedesktop_dbus_call_list_activatable_names_sync() for the synchronous, blocking version of this method.
2644+ */
2645+void
2646+_g_freedesktop_dbus_call_list_activatable_names (
2647+    _GFreedesktopDBus *proxy,
2648+    GCancellable *cancellable,
2649+    GAsyncReadyCallback callback,
2650+    gpointer user_data)
2651+{
2652+  g_dbus_proxy_call (G_DBUS_PROXY (proxy),
2653+    "ListActivatableNames",
2654+    g_variant_new ("()"),
2655+    G_DBUS_CALL_FLAGS_NONE,
2656+    -1,
2657+    cancellable,
2658+    callback,
2659+    user_data);
2660+}
2661+
2662+/**
2663+ * _g_freedesktop_dbus_call_list_activatable_names_finish:
2664+ * @proxy: A #_GFreedesktopDBusProxy.
2665+ * @out_activatable_names: (out) (optional) (array zero-terminated=1): Return location for return parameter or %NULL to ignore.
2666+ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to _g_freedesktop_dbus_call_list_activatable_names().
2667+ * @error: Return location for error or %NULL.
2668+ *
2669+ * Finishes an operation started with _g_freedesktop_dbus_call_list_activatable_names().
2670+ *
2671+ * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
2672+ */
2673+gboolean
2674+_g_freedesktop_dbus_call_list_activatable_names_finish (
2675+    _GFreedesktopDBus *proxy,
2676+    gchar ***out_activatable_names,
2677+    GAsyncResult *res,
2678+    GError **error)
2679+{
2680+  GVariant *_ret;
2681+  _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
2682+  if (_ret == NULL)
2683+    goto _out;
2684+  g_variant_get (_ret,
2685+                 "(^as)",
2686+                 out_activatable_names);
2687+  g_variant_unref (_ret);
2688+_out:
2689+  return _ret != NULL;
2690+}
2691+
2692+/**
2693+ * _g_freedesktop_dbus_call_list_activatable_names_sync:
2694+ * @proxy: A #_GFreedesktopDBusProxy.
2695+ * @out_activatable_names: (out) (optional) (array zero-terminated=1): Return location for return parameter or %NULL to ignore.
2696+ * @cancellable: (nullable): A #GCancellable or %NULL.
2697+ * @error: Return location for error or %NULL.
2698+ *
2699+ * Synchronously invokes the <link linkend="gdbus-method-org-freedesktop-DBus.ListActivatableNames">ListActivatableNames()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
2700+ *
2701+ * See _g_freedesktop_dbus_call_list_activatable_names() for the asynchronous version of this method.
2702+ *
2703+ * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
2704+ */
2705+gboolean
2706+_g_freedesktop_dbus_call_list_activatable_names_sync (
2707+    _GFreedesktopDBus *proxy,
2708+    gchar ***out_activatable_names,
2709+    GCancellable *cancellable,
2710+    GError **error)
2711+{
2712+  GVariant *_ret;
2713+  _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
2714+    "ListActivatableNames",
2715+    g_variant_new ("()"),
2716+    G_DBUS_CALL_FLAGS_NONE,
2717+    -1,
2718+    cancellable,
2719+    error);
2720+  if (_ret == NULL)
2721+    goto _out;
2722+  g_variant_get (_ret,
2723+                 "(^as)",
2724+                 out_activatable_names);
2725+  g_variant_unref (_ret);
2726+_out:
2727+  return _ret != NULL;
2728+}
2729+
2730+/**
2731+ * _g_freedesktop_dbus_call_add_match:
2732+ * @proxy: A #_GFreedesktopDBusProxy.
2733+ * @arg_rule: Argument to pass with the method invocation.
2734+ * @cancellable: (nullable): A #GCancellable or %NULL.
2735+ * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
2736+ * @user_data: User data to pass to @callback.
2737+ *
2738+ * Asynchronously invokes the <link linkend="gdbus-method-org-freedesktop-DBus.AddMatch">AddMatch()</link> D-Bus method on @proxy.
2739+ * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from (see g_main_context_push_thread_default()).
2740+ * You can then call _g_freedesktop_dbus_call_add_match_finish() to get the result of the operation.
2741+ *
2742+ * See _g_freedesktop_dbus_call_add_match_sync() for the synchronous, blocking version of this method.
2743+ */
2744+void
2745+_g_freedesktop_dbus_call_add_match (
2746+    _GFreedesktopDBus *proxy,
2747+    const gchar *arg_rule,
2748+    GCancellable *cancellable,
2749+    GAsyncReadyCallback callback,
2750+    gpointer user_data)
2751+{
2752+  g_dbus_proxy_call (G_DBUS_PROXY (proxy),
2753+    "AddMatch",
2754+    g_variant_new ("(s)",
2755+                   arg_rule),
2756+    G_DBUS_CALL_FLAGS_NONE,
2757+    -1,
2758+    cancellable,
2759+    callback,
2760+    user_data);
2761+}
2762+
2763+/**
2764+ * _g_freedesktop_dbus_call_add_match_finish:
2765+ * @proxy: A #_GFreedesktopDBusProxy.
2766+ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to _g_freedesktop_dbus_call_add_match().
2767+ * @error: Return location for error or %NULL.
2768+ *
2769+ * Finishes an operation started with _g_freedesktop_dbus_call_add_match().
2770+ *
2771+ * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
2772+ */
2773+gboolean
2774+_g_freedesktop_dbus_call_add_match_finish (
2775+    _GFreedesktopDBus *proxy,
2776+    GAsyncResult *res,
2777+    GError **error)
2778+{
2779+  GVariant *_ret;
2780+  _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
2781+  if (_ret == NULL)
2782+    goto _out;
2783+  g_variant_get (_ret,
2784+                 "()");
2785+  g_variant_unref (_ret);
2786+_out:
2787+  return _ret != NULL;
2788+}
2789+
2790+/**
2791+ * _g_freedesktop_dbus_call_add_match_sync:
2792+ * @proxy: A #_GFreedesktopDBusProxy.
2793+ * @arg_rule: Argument to pass with the method invocation.
2794+ * @cancellable: (nullable): A #GCancellable or %NULL.
2795+ * @error: Return location for error or %NULL.
2796+ *
2797+ * Synchronously invokes the <link linkend="gdbus-method-org-freedesktop-DBus.AddMatch">AddMatch()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
2798+ *
2799+ * See _g_freedesktop_dbus_call_add_match() for the asynchronous version of this method.
2800+ *
2801+ * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
2802+ */
2803+gboolean
2804+_g_freedesktop_dbus_call_add_match_sync (
2805+    _GFreedesktopDBus *proxy,
2806+    const gchar *arg_rule,
2807+    GCancellable *cancellable,
2808+    GError **error)
2809+{
2810+  GVariant *_ret;
2811+  _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
2812+    "AddMatch",
2813+    g_variant_new ("(s)",
2814+                   arg_rule),
2815+    G_DBUS_CALL_FLAGS_NONE,
2816+    -1,
2817+    cancellable,
2818+    error);
2819+  if (_ret == NULL)
2820+    goto _out;
2821+  g_variant_get (_ret,
2822+                 "()");
2823+  g_variant_unref (_ret);
2824+_out:
2825+  return _ret != NULL;
2826+}
2827+
2828+/**
2829+ * _g_freedesktop_dbus_call_remove_match:
2830+ * @proxy: A #_GFreedesktopDBusProxy.
2831+ * @arg_rule: Argument to pass with the method invocation.
2832+ * @cancellable: (nullable): A #GCancellable or %NULL.
2833+ * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
2834+ * @user_data: User data to pass to @callback.
2835+ *
2836+ * Asynchronously invokes the <link linkend="gdbus-method-org-freedesktop-DBus.RemoveMatch">RemoveMatch()</link> D-Bus method on @proxy.
2837+ * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from (see g_main_context_push_thread_default()).
2838+ * You can then call _g_freedesktop_dbus_call_remove_match_finish() to get the result of the operation.
2839+ *
2840+ * See _g_freedesktop_dbus_call_remove_match_sync() for the synchronous, blocking version of this method.
2841+ */
2842+void
2843+_g_freedesktop_dbus_call_remove_match (
2844+    _GFreedesktopDBus *proxy,
2845+    const gchar *arg_rule,
2846+    GCancellable *cancellable,
2847+    GAsyncReadyCallback callback,
2848+    gpointer user_data)
2849+{
2850+  g_dbus_proxy_call (G_DBUS_PROXY (proxy),
2851+    "RemoveMatch",
2852+    g_variant_new ("(s)",
2853+                   arg_rule),
2854+    G_DBUS_CALL_FLAGS_NONE,
2855+    -1,
2856+    cancellable,
2857+    callback,
2858+    user_data);
2859+}
2860+
2861+/**
2862+ * _g_freedesktop_dbus_call_remove_match_finish:
2863+ * @proxy: A #_GFreedesktopDBusProxy.
2864+ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to _g_freedesktop_dbus_call_remove_match().
2865+ * @error: Return location for error or %NULL.
2866+ *
2867+ * Finishes an operation started with _g_freedesktop_dbus_call_remove_match().
2868+ *
2869+ * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
2870+ */
2871+gboolean
2872+_g_freedesktop_dbus_call_remove_match_finish (
2873+    _GFreedesktopDBus *proxy,
2874+    GAsyncResult *res,
2875+    GError **error)
2876+{
2877+  GVariant *_ret;
2878+  _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
2879+  if (_ret == NULL)
2880+    goto _out;
2881+  g_variant_get (_ret,
2882+                 "()");
2883+  g_variant_unref (_ret);
2884+_out:
2885+  return _ret != NULL;
2886+}
2887+
2888+/**
2889+ * _g_freedesktop_dbus_call_remove_match_sync:
2890+ * @proxy: A #_GFreedesktopDBusProxy.
2891+ * @arg_rule: Argument to pass with the method invocation.
2892+ * @cancellable: (nullable): A #GCancellable or %NULL.
2893+ * @error: Return location for error or %NULL.
2894+ *
2895+ * Synchronously invokes the <link linkend="gdbus-method-org-freedesktop-DBus.RemoveMatch">RemoveMatch()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
2896+ *
2897+ * See _g_freedesktop_dbus_call_remove_match() for the asynchronous version of this method.
2898+ *
2899+ * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
2900+ */
2901+gboolean
2902+_g_freedesktop_dbus_call_remove_match_sync (
2903+    _GFreedesktopDBus *proxy,
2904+    const gchar *arg_rule,
2905+    GCancellable *cancellable,
2906+    GError **error)
2907+{
2908+  GVariant *_ret;
2909+  _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
2910+    "RemoveMatch",
2911+    g_variant_new ("(s)",
2912+                   arg_rule),
2913+    G_DBUS_CALL_FLAGS_NONE,
2914+    -1,
2915+    cancellable,
2916+    error);
2917+  if (_ret == NULL)
2918+    goto _out;
2919+  g_variant_get (_ret,
2920+                 "()");
2921+  g_variant_unref (_ret);
2922+_out:
2923+  return _ret != NULL;
2924+}
2925+
2926+/**
2927+ * _g_freedesktop_dbus_call_get_name_owner:
2928+ * @proxy: A #_GFreedesktopDBusProxy.
2929+ * @arg_name: Argument to pass with the method invocation.
2930+ * @cancellable: (nullable): A #GCancellable or %NULL.
2931+ * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
2932+ * @user_data: User data to pass to @callback.
2933+ *
2934+ * Asynchronously invokes the <link linkend="gdbus-method-org-freedesktop-DBus.GetNameOwner">GetNameOwner()</link> D-Bus method on @proxy.
2935+ * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from (see g_main_context_push_thread_default()).
2936+ * You can then call _g_freedesktop_dbus_call_get_name_owner_finish() to get the result of the operation.
2937+ *
2938+ * See _g_freedesktop_dbus_call_get_name_owner_sync() for the synchronous, blocking version of this method.
2939+ */
2940+void
2941+_g_freedesktop_dbus_call_get_name_owner (
2942+    _GFreedesktopDBus *proxy,
2943+    const gchar *arg_name,
2944+    GCancellable *cancellable,
2945+    GAsyncReadyCallback callback,
2946+    gpointer user_data)
2947+{
2948+  g_dbus_proxy_call (G_DBUS_PROXY (proxy),
2949+    "GetNameOwner",
2950+    g_variant_new ("(s)",
2951+                   arg_name),
2952+    G_DBUS_CALL_FLAGS_NONE,
2953+    -1,
2954+    cancellable,
2955+    callback,
2956+    user_data);
2957+}
2958+
2959+/**
2960+ * _g_freedesktop_dbus_call_get_name_owner_finish:
2961+ * @proxy: A #_GFreedesktopDBusProxy.
2962+ * @out_unique_name: (out) (optional): Return location for return parameter or %NULL to ignore.
2963+ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to _g_freedesktop_dbus_call_get_name_owner().
2964+ * @error: Return location for error or %NULL.
2965+ *
2966+ * Finishes an operation started with _g_freedesktop_dbus_call_get_name_owner().
2967+ *
2968+ * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
2969+ */
2970+gboolean
2971+_g_freedesktop_dbus_call_get_name_owner_finish (
2972+    _GFreedesktopDBus *proxy,
2973+    gchar **out_unique_name,
2974+    GAsyncResult *res,
2975+    GError **error)
2976+{
2977+  GVariant *_ret;
2978+  _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
2979+  if (_ret == NULL)
2980+    goto _out;
2981+  g_variant_get (_ret,
2982+                 "(s)",
2983+                 out_unique_name);
2984+  g_variant_unref (_ret);
2985+_out:
2986+  return _ret != NULL;
2987+}
2988+
2989+/**
2990+ * _g_freedesktop_dbus_call_get_name_owner_sync:
2991+ * @proxy: A #_GFreedesktopDBusProxy.
2992+ * @arg_name: Argument to pass with the method invocation.
2993+ * @out_unique_name: (out) (optional): Return location for return parameter or %NULL to ignore.
2994+ * @cancellable: (nullable): A #GCancellable or %NULL.
2995+ * @error: Return location for error or %NULL.
2996+ *
2997+ * Synchronously invokes the <link linkend="gdbus-method-org-freedesktop-DBus.GetNameOwner">GetNameOwner()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
2998+ *
2999+ * See _g_freedesktop_dbus_call_get_name_owner() for the asynchronous version of this method.
3000+ *
3001+ * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
3002+ */
3003+gboolean
3004+_g_freedesktop_dbus_call_get_name_owner_sync (
3005+    _GFreedesktopDBus *proxy,
3006+    const gchar *arg_name,
3007+    gchar **out_unique_name,
3008+    GCancellable *cancellable,
3009+    GError **error)
3010+{
3011+  GVariant *_ret;
3012+  _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
3013+    "GetNameOwner",
3014+    g_variant_new ("(s)",
3015+                   arg_name),
3016+    G_DBUS_CALL_FLAGS_NONE,
3017+    -1,
3018+    cancellable,
3019+    error);
3020+  if (_ret == NULL)
3021+    goto _out;
3022+  g_variant_get (_ret,
3023+                 "(s)",
3024+                 out_unique_name);
3025+  g_variant_unref (_ret);
3026+_out:
3027+  return _ret != NULL;
3028+}
3029+
3030+/**
3031+ * _g_freedesktop_dbus_call_list_queued_owners:
3032+ * @proxy: A #_GFreedesktopDBusProxy.
3033+ * @arg_name: Argument to pass with the method invocation.
3034+ * @cancellable: (nullable): A #GCancellable or %NULL.
3035+ * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
3036+ * @user_data: User data to pass to @callback.
3037+ *
3038+ * Asynchronously invokes the <link linkend="gdbus-method-org-freedesktop-DBus.ListQueuedOwners">ListQueuedOwners()</link> D-Bus method on @proxy.
3039+ * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from (see g_main_context_push_thread_default()).
3040+ * You can then call _g_freedesktop_dbus_call_list_queued_owners_finish() to get the result of the operation.
3041+ *
3042+ * See _g_freedesktop_dbus_call_list_queued_owners_sync() for the synchronous, blocking version of this method.
3043+ */
3044+void
3045+_g_freedesktop_dbus_call_list_queued_owners (
3046+    _GFreedesktopDBus *proxy,
3047+    const gchar *arg_name,
3048+    GCancellable *cancellable,
3049+    GAsyncReadyCallback callback,
3050+    gpointer user_data)
3051+{
3052+  g_dbus_proxy_call (G_DBUS_PROXY (proxy),
3053+    "ListQueuedOwners",
3054+    g_variant_new ("(s)",
3055+                   arg_name),
3056+    G_DBUS_CALL_FLAGS_NONE,
3057+    -1,
3058+    cancellable,
3059+    callback,
3060+    user_data);
3061+}
3062+
3063+/**
3064+ * _g_freedesktop_dbus_call_list_queued_owners_finish:
3065+ * @proxy: A #_GFreedesktopDBusProxy.
3066+ * @out_queued_owners: (out) (optional) (array zero-terminated=1): Return location for return parameter or %NULL to ignore.
3067+ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to _g_freedesktop_dbus_call_list_queued_owners().
3068+ * @error: Return location for error or %NULL.
3069+ *
3070+ * Finishes an operation started with _g_freedesktop_dbus_call_list_queued_owners().
3071+ *
3072+ * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
3073+ */
3074+gboolean
3075+_g_freedesktop_dbus_call_list_queued_owners_finish (
3076+    _GFreedesktopDBus *proxy,
3077+    gchar ***out_queued_owners,
3078+    GAsyncResult *res,
3079+    GError **error)
3080+{
3081+  GVariant *_ret;
3082+  _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
3083+  if (_ret == NULL)
3084+    goto _out;
3085+  g_variant_get (_ret,
3086+                 "(^as)",
3087+                 out_queued_owners);
3088+  g_variant_unref (_ret);
3089+_out:
3090+  return _ret != NULL;
3091+}
3092+
3093+/**
3094+ * _g_freedesktop_dbus_call_list_queued_owners_sync:
3095+ * @proxy: A #_GFreedesktopDBusProxy.
3096+ * @arg_name: Argument to pass with the method invocation.
3097+ * @out_queued_owners: (out) (optional) (array zero-terminated=1): Return location for return parameter or %NULL to ignore.
3098+ * @cancellable: (nullable): A #GCancellable or %NULL.
3099+ * @error: Return location for error or %NULL.
3100+ *
3101+ * Synchronously invokes the <link linkend="gdbus-method-org-freedesktop-DBus.ListQueuedOwners">ListQueuedOwners()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
3102+ *
3103+ * See _g_freedesktop_dbus_call_list_queued_owners() for the asynchronous version of this method.
3104+ *
3105+ * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
3106+ */
3107+gboolean
3108+_g_freedesktop_dbus_call_list_queued_owners_sync (
3109+    _GFreedesktopDBus *proxy,
3110+    const gchar *arg_name,
3111+    gchar ***out_queued_owners,
3112+    GCancellable *cancellable,
3113+    GError **error)
3114+{
3115+  GVariant *_ret;
3116+  _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
3117+    "ListQueuedOwners",
3118+    g_variant_new ("(s)",
3119+                   arg_name),
3120+    G_DBUS_CALL_FLAGS_NONE,
3121+    -1,
3122+    cancellable,
3123+    error);
3124+  if (_ret == NULL)
3125+    goto _out;
3126+  g_variant_get (_ret,
3127+                 "(^as)",
3128+                 out_queued_owners);
3129+  g_variant_unref (_ret);
3130+_out:
3131+  return _ret != NULL;
3132+}
3133+
3134+/**
3135+ * _g_freedesktop_dbus_call_get_connection_unix_user:
3136+ * @proxy: A #_GFreedesktopDBusProxy.
3137+ * @arg_name: Argument to pass with the method invocation.
3138+ * @cancellable: (nullable): A #GCancellable or %NULL.
3139+ * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
3140+ * @user_data: User data to pass to @callback.
3141+ *
3142+ * Asynchronously invokes the <link linkend="gdbus-method-org-freedesktop-DBus.GetConnectionUnixUser">GetConnectionUnixUser()</link> D-Bus method on @proxy.
3143+ * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from (see g_main_context_push_thread_default()).
3144+ * You can then call _g_freedesktop_dbus_call_get_connection_unix_user_finish() to get the result of the operation.
3145+ *
3146+ * See _g_freedesktop_dbus_call_get_connection_unix_user_sync() for the synchronous, blocking version of this method.
3147+ */
3148+void
3149+_g_freedesktop_dbus_call_get_connection_unix_user (
3150+    _GFreedesktopDBus *proxy,
3151+    const gchar *arg_name,
3152+    GCancellable *cancellable,
3153+    GAsyncReadyCallback callback,
3154+    gpointer user_data)
3155+{
3156+  g_dbus_proxy_call (G_DBUS_PROXY (proxy),
3157+    "GetConnectionUnixUser",
3158+    g_variant_new ("(s)",
3159+                   arg_name),
3160+    G_DBUS_CALL_FLAGS_NONE,
3161+    -1,
3162+    cancellable,
3163+    callback,
3164+    user_data);
3165+}
3166+
3167+/**
3168+ * _g_freedesktop_dbus_call_get_connection_unix_user_finish:
3169+ * @proxy: A #_GFreedesktopDBusProxy.
3170+ * @out_uid: (out) (optional): Return location for return parameter or %NULL to ignore.
3171+ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to _g_freedesktop_dbus_call_get_connection_unix_user().
3172+ * @error: Return location for error or %NULL.
3173+ *
3174+ * Finishes an operation started with _g_freedesktop_dbus_call_get_connection_unix_user().
3175+ *
3176+ * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
3177+ */
3178+gboolean
3179+_g_freedesktop_dbus_call_get_connection_unix_user_finish (
3180+    _GFreedesktopDBus *proxy,
3181+    guint *out_uid,
3182+    GAsyncResult *res,
3183+    GError **error)
3184+{
3185+  GVariant *_ret;
3186+  _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
3187+  if (_ret == NULL)
3188+    goto _out;
3189+  g_variant_get (_ret,
3190+                 "(u)",
3191+                 out_uid);
3192+  g_variant_unref (_ret);
3193+_out:
3194+  return _ret != NULL;
3195+}
3196+
3197+/**
3198+ * _g_freedesktop_dbus_call_get_connection_unix_user_sync:
3199+ * @proxy: A #_GFreedesktopDBusProxy.
3200+ * @arg_name: Argument to pass with the method invocation.
3201+ * @out_uid: (out) (optional): Return location for return parameter or %NULL to ignore.
3202+ * @cancellable: (nullable): A #GCancellable or %NULL.
3203+ * @error: Return location for error or %NULL.
3204+ *
3205+ * Synchronously invokes the <link linkend="gdbus-method-org-freedesktop-DBus.GetConnectionUnixUser">GetConnectionUnixUser()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
3206+ *
3207+ * See _g_freedesktop_dbus_call_get_connection_unix_user() for the asynchronous version of this method.
3208+ *
3209+ * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
3210+ */
3211+gboolean
3212+_g_freedesktop_dbus_call_get_connection_unix_user_sync (
3213+    _GFreedesktopDBus *proxy,
3214+    const gchar *arg_name,
3215+    guint *out_uid,
3216+    GCancellable *cancellable,
3217+    GError **error)
3218+{
3219+  GVariant *_ret;
3220+  _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
3221+    "GetConnectionUnixUser",
3222+    g_variant_new ("(s)",
3223+                   arg_name),
3224+    G_DBUS_CALL_FLAGS_NONE,
3225+    -1,
3226+    cancellable,
3227+    error);
3228+  if (_ret == NULL)
3229+    goto _out;
3230+  g_variant_get (_ret,
3231+                 "(u)",
3232+                 out_uid);
3233+  g_variant_unref (_ret);
3234+_out:
3235+  return _ret != NULL;
3236+}
3237+
3238+/**
3239+ * _g_freedesktop_dbus_call_get_connection_unix_process_id:
3240+ * @proxy: A #_GFreedesktopDBusProxy.
3241+ * @arg_name: Argument to pass with the method invocation.
3242+ * @cancellable: (nullable): A #GCancellable or %NULL.
3243+ * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
3244+ * @user_data: User data to pass to @callback.
3245+ *
3246+ * Asynchronously invokes the <link linkend="gdbus-method-org-freedesktop-DBus.GetConnectionUnixProcessID">GetConnectionUnixProcessID()</link> D-Bus method on @proxy.
3247+ * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from (see g_main_context_push_thread_default()).
3248+ * You can then call _g_freedesktop_dbus_call_get_connection_unix_process_id_finish() to get the result of the operation.
3249+ *
3250+ * See _g_freedesktop_dbus_call_get_connection_unix_process_id_sync() for the synchronous, blocking version of this method.
3251+ */
3252+void
3253+_g_freedesktop_dbus_call_get_connection_unix_process_id (
3254+    _GFreedesktopDBus *proxy,
3255+    const gchar *arg_name,
3256+    GCancellable *cancellable,
3257+    GAsyncReadyCallback callback,
3258+    gpointer user_data)
3259+{
3260+  g_dbus_proxy_call (G_DBUS_PROXY (proxy),
3261+    "GetConnectionUnixProcessID",
3262+    g_variant_new ("(s)",
3263+                   arg_name),
3264+    G_DBUS_CALL_FLAGS_NONE,
3265+    -1,
3266+    cancellable,
3267+    callback,
3268+    user_data);
3269+}
3270+
3271+/**
3272+ * _g_freedesktop_dbus_call_get_connection_unix_process_id_finish:
3273+ * @proxy: A #_GFreedesktopDBusProxy.
3274+ * @out_pid: (out) (optional): Return location for return parameter or %NULL to ignore.
3275+ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to _g_freedesktop_dbus_call_get_connection_unix_process_id().
3276+ * @error: Return location for error or %NULL.
3277+ *
3278+ * Finishes an operation started with _g_freedesktop_dbus_call_get_connection_unix_process_id().
3279+ *
3280+ * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
3281+ */
3282+gboolean
3283+_g_freedesktop_dbus_call_get_connection_unix_process_id_finish (
3284+    _GFreedesktopDBus *proxy,
3285+    guint *out_pid,
3286+    GAsyncResult *res,
3287+    GError **error)
3288+{
3289+  GVariant *_ret;
3290+  _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
3291+  if (_ret == NULL)
3292+    goto _out;
3293+  g_variant_get (_ret,
3294+                 "(u)",
3295+                 out_pid);
3296+  g_variant_unref (_ret);
3297+_out:
3298+  return _ret != NULL;
3299+}
3300+
3301+/**
3302+ * _g_freedesktop_dbus_call_get_connection_unix_process_id_sync:
3303+ * @proxy: A #_GFreedesktopDBusProxy.
3304+ * @arg_name: Argument to pass with the method invocation.
3305+ * @out_pid: (out) (optional): Return location for return parameter or %NULL to ignore.
3306+ * @cancellable: (nullable): A #GCancellable or %NULL.
3307+ * @error: Return location for error or %NULL.
3308+ *
3309+ * Synchronously invokes the <link linkend="gdbus-method-org-freedesktop-DBus.GetConnectionUnixProcessID">GetConnectionUnixProcessID()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
3310+ *
3311+ * See _g_freedesktop_dbus_call_get_connection_unix_process_id() for the asynchronous version of this method.
3312+ *
3313+ * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
3314+ */
3315+gboolean
3316+_g_freedesktop_dbus_call_get_connection_unix_process_id_sync (
3317+    _GFreedesktopDBus *proxy,
3318+    const gchar *arg_name,
3319+    guint *out_pid,
3320+    GCancellable *cancellable,
3321+    GError **error)
3322+{
3323+  GVariant *_ret;
3324+  _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
3325+    "GetConnectionUnixProcessID",
3326+    g_variant_new ("(s)",
3327+                   arg_name),
3328+    G_DBUS_CALL_FLAGS_NONE,
3329+    -1,
3330+    cancellable,
3331+    error);
3332+  if (_ret == NULL)
3333+    goto _out;
3334+  g_variant_get (_ret,
3335+                 "(u)",
3336+                 out_pid);
3337+  g_variant_unref (_ret);
3338+_out:
3339+  return _ret != NULL;
3340+}
3341+
3342+/**
3343+ * _g_freedesktop_dbus_call_get_connection_selinux_security_context:
3344+ * @proxy: A #_GFreedesktopDBusProxy.
3345+ * @arg_name: Argument to pass with the method invocation.
3346+ * @cancellable: (nullable): A #GCancellable or %NULL.
3347+ * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
3348+ * @user_data: User data to pass to @callback.
3349+ *
3350+ * Asynchronously invokes the <link linkend="gdbus-method-org-freedesktop-DBus.GetConnectionSELinuxSecurityContext">GetConnectionSELinuxSecurityContext()</link> D-Bus method on @proxy.
3351+ * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from (see g_main_context_push_thread_default()).
3352+ * You can then call _g_freedesktop_dbus_call_get_connection_selinux_security_context_finish() to get the result of the operation.
3353+ *
3354+ * See _g_freedesktop_dbus_call_get_connection_selinux_security_context_sync() for the synchronous, blocking version of this method.
3355+ */
3356+void
3357+_g_freedesktop_dbus_call_get_connection_selinux_security_context (
3358+    _GFreedesktopDBus *proxy,
3359+    const gchar *arg_name,
3360+    GCancellable *cancellable,
3361+    GAsyncReadyCallback callback,
3362+    gpointer user_data)
3363+{
3364+  g_dbus_proxy_call (G_DBUS_PROXY (proxy),
3365+    "GetConnectionSELinuxSecurityContext",
3366+    g_variant_new ("(s)",
3367+                   arg_name),
3368+    G_DBUS_CALL_FLAGS_NONE,
3369+    -1,
3370+    cancellable,
3371+    callback,
3372+    user_data);
3373+}
3374+
3375+/**
3376+ * _g_freedesktop_dbus_call_get_connection_selinux_security_context_finish:
3377+ * @proxy: A #_GFreedesktopDBusProxy.
3378+ * @out_security_context: (out) (optional): Return location for return parameter or %NULL to ignore.
3379+ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to _g_freedesktop_dbus_call_get_connection_selinux_security_context().
3380+ * @error: Return location for error or %NULL.
3381+ *
3382+ * Finishes an operation started with _g_freedesktop_dbus_call_get_connection_selinux_security_context().
3383+ *
3384+ * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
3385+ */
3386+gboolean
3387+_g_freedesktop_dbus_call_get_connection_selinux_security_context_finish (
3388+    _GFreedesktopDBus *proxy,
3389+    gchar **out_security_context,
3390+    GAsyncResult *res,
3391+    GError **error)
3392+{
3393+  GVariant *_ret;
3394+  _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
3395+  if (_ret == NULL)
3396+    goto _out;
3397+  g_variant_get (_ret,
3398+                 "(^ay)",
3399+                 out_security_context);
3400+  g_variant_unref (_ret);
3401+_out:
3402+  return _ret != NULL;
3403+}
3404+
3405+/**
3406+ * _g_freedesktop_dbus_call_get_connection_selinux_security_context_sync:
3407+ * @proxy: A #_GFreedesktopDBusProxy.
3408+ * @arg_name: Argument to pass with the method invocation.
3409+ * @out_security_context: (out) (optional): Return location for return parameter or %NULL to ignore.
3410+ * @cancellable: (nullable): A #GCancellable or %NULL.
3411+ * @error: Return location for error or %NULL.
3412+ *
3413+ * Synchronously invokes the <link linkend="gdbus-method-org-freedesktop-DBus.GetConnectionSELinuxSecurityContext">GetConnectionSELinuxSecurityContext()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
3414+ *
3415+ * See _g_freedesktop_dbus_call_get_connection_selinux_security_context() for the asynchronous version of this method.
3416+ *
3417+ * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
3418+ */
3419+gboolean
3420+_g_freedesktop_dbus_call_get_connection_selinux_security_context_sync (
3421+    _GFreedesktopDBus *proxy,
3422+    const gchar *arg_name,
3423+    gchar **out_security_context,
3424+    GCancellable *cancellable,
3425+    GError **error)
3426+{
3427+  GVariant *_ret;
3428+  _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
3429+    "GetConnectionSELinuxSecurityContext",
3430+    g_variant_new ("(s)",
3431+                   arg_name),
3432+    G_DBUS_CALL_FLAGS_NONE,
3433+    -1,
3434+    cancellable,
3435+    error);
3436+  if (_ret == NULL)
3437+    goto _out;
3438+  g_variant_get (_ret,
3439+                 "(^ay)",
3440+                 out_security_context);
3441+  g_variant_unref (_ret);
3442+_out:
3443+  return _ret != NULL;
3444+}
3445+
3446+/**
3447+ * _g_freedesktop_dbus_call_update_activation_environment:
3448+ * @proxy: A #_GFreedesktopDBusProxy.
3449+ * @arg_environment: Argument to pass with the method invocation.
3450+ * @cancellable: (nullable): A #GCancellable or %NULL.
3451+ * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
3452+ * @user_data: User data to pass to @callback.
3453+ *
3454+ * Asynchronously invokes the <link linkend="gdbus-method-org-freedesktop-DBus.UpdateActivationEnvironment">UpdateActivationEnvironment()</link> D-Bus method on @proxy.
3455+ * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from (see g_main_context_push_thread_default()).
3456+ * You can then call _g_freedesktop_dbus_call_update_activation_environment_finish() to get the result of the operation.
3457+ *
3458+ * See _g_freedesktop_dbus_call_update_activation_environment_sync() for the synchronous, blocking version of this method.
3459+ */
3460+void
3461+_g_freedesktop_dbus_call_update_activation_environment (
3462+    _GFreedesktopDBus *proxy,
3463+    GVariant *arg_environment,
3464+    GCancellable *cancellable,
3465+    GAsyncReadyCallback callback,
3466+    gpointer user_data)
3467+{
3468+  g_dbus_proxy_call (G_DBUS_PROXY (proxy),
3469+    "UpdateActivationEnvironment",
3470+    g_variant_new ("(@a{ss})",
3471+                   arg_environment),
3472+    G_DBUS_CALL_FLAGS_NONE,
3473+    -1,
3474+    cancellable,
3475+    callback,
3476+    user_data);
3477+}
3478+
3479+/**
3480+ * _g_freedesktop_dbus_call_update_activation_environment_finish:
3481+ * @proxy: A #_GFreedesktopDBusProxy.
3482+ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to _g_freedesktop_dbus_call_update_activation_environment().
3483+ * @error: Return location for error or %NULL.
3484+ *
3485+ * Finishes an operation started with _g_freedesktop_dbus_call_update_activation_environment().
3486+ *
3487+ * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
3488+ */
3489+gboolean
3490+_g_freedesktop_dbus_call_update_activation_environment_finish (
3491+    _GFreedesktopDBus *proxy,
3492+    GAsyncResult *res,
3493+    GError **error)
3494+{
3495+  GVariant *_ret;
3496+  _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
3497+  if (_ret == NULL)
3498+    goto _out;
3499+  g_variant_get (_ret,
3500+                 "()");
3501+  g_variant_unref (_ret);
3502+_out:
3503+  return _ret != NULL;
3504+}
3505+
3506+/**
3507+ * _g_freedesktop_dbus_call_update_activation_environment_sync:
3508+ * @proxy: A #_GFreedesktopDBusProxy.
3509+ * @arg_environment: Argument to pass with the method invocation.
3510+ * @cancellable: (nullable): A #GCancellable or %NULL.
3511+ * @error: Return location for error or %NULL.
3512+ *
3513+ * Synchronously invokes the <link linkend="gdbus-method-org-freedesktop-DBus.UpdateActivationEnvironment">UpdateActivationEnvironment()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
3514+ *
3515+ * See _g_freedesktop_dbus_call_update_activation_environment() for the asynchronous version of this method.
3516+ *
3517+ * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
3518+ */
3519+gboolean
3520+_g_freedesktop_dbus_call_update_activation_environment_sync (
3521+    _GFreedesktopDBus *proxy,
3522+    GVariant *arg_environment,
3523+    GCancellable *cancellable,
3524+    GError **error)
3525+{
3526+  GVariant *_ret;
3527+  _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
3528+    "UpdateActivationEnvironment",
3529+    g_variant_new ("(@a{ss})",
3530+                   arg_environment),
3531+    G_DBUS_CALL_FLAGS_NONE,
3532+    -1,
3533+    cancellable,
3534+    error);
3535+  if (_ret == NULL)
3536+    goto _out;
3537+  g_variant_get (_ret,
3538+                 "()");
3539+  g_variant_unref (_ret);
3540+_out:
3541+  return _ret != NULL;
3542+}
3543+
3544+/**
3545+ * _g_freedesktop_dbus_call_reload_config:
3546+ * @proxy: A #_GFreedesktopDBusProxy.
3547+ * @cancellable: (nullable): A #GCancellable or %NULL.
3548+ * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
3549+ * @user_data: User data to pass to @callback.
3550+ *
3551+ * Asynchronously invokes the <link linkend="gdbus-method-org-freedesktop-DBus.ReloadConfig">ReloadConfig()</link> D-Bus method on @proxy.
3552+ * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from (see g_main_context_push_thread_default()).
3553+ * You can then call _g_freedesktop_dbus_call_reload_config_finish() to get the result of the operation.
3554+ *
3555+ * See _g_freedesktop_dbus_call_reload_config_sync() for the synchronous, blocking version of this method.
3556+ */
3557+void
3558+_g_freedesktop_dbus_call_reload_config (
3559+    _GFreedesktopDBus *proxy,
3560+    GCancellable *cancellable,
3561+    GAsyncReadyCallback callback,
3562+    gpointer user_data)
3563+{
3564+  g_dbus_proxy_call (G_DBUS_PROXY (proxy),
3565+    "ReloadConfig",
3566+    g_variant_new ("()"),
3567+    G_DBUS_CALL_FLAGS_NONE,
3568+    -1,
3569+    cancellable,
3570+    callback,
3571+    user_data);
3572+}
3573+
3574+/**
3575+ * _g_freedesktop_dbus_call_reload_config_finish:
3576+ * @proxy: A #_GFreedesktopDBusProxy.
3577+ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to _g_freedesktop_dbus_call_reload_config().
3578+ * @error: Return location for error or %NULL.
3579+ *
3580+ * Finishes an operation started with _g_freedesktop_dbus_call_reload_config().
3581+ *
3582+ * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
3583+ */
3584+gboolean
3585+_g_freedesktop_dbus_call_reload_config_finish (
3586+    _GFreedesktopDBus *proxy,
3587+    GAsyncResult *res,
3588+    GError **error)
3589+{
3590+  GVariant *_ret;
3591+  _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
3592+  if (_ret == NULL)
3593+    goto _out;
3594+  g_variant_get (_ret,
3595+                 "()");
3596+  g_variant_unref (_ret);
3597+_out:
3598+  return _ret != NULL;
3599+}
3600+
3601+/**
3602+ * _g_freedesktop_dbus_call_reload_config_sync:
3603+ * @proxy: A #_GFreedesktopDBusProxy.
3604+ * @cancellable: (nullable): A #GCancellable or %NULL.
3605+ * @error: Return location for error or %NULL.
3606+ *
3607+ * Synchronously invokes the <link linkend="gdbus-method-org-freedesktop-DBus.ReloadConfig">ReloadConfig()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
3608+ *
3609+ * See _g_freedesktop_dbus_call_reload_config() for the asynchronous version of this method.
3610+ *
3611+ * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
3612+ */
3613+gboolean
3614+_g_freedesktop_dbus_call_reload_config_sync (
3615+    _GFreedesktopDBus *proxy,
3616+    GCancellable *cancellable,
3617+    GError **error)
3618+{
3619+  GVariant *_ret;
3620+  _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
3621+    "ReloadConfig",
3622+    g_variant_new ("()"),
3623+    G_DBUS_CALL_FLAGS_NONE,
3624+    -1,
3625+    cancellable,
3626+    error);
3627+  if (_ret == NULL)
3628+    goto _out;
3629+  g_variant_get (_ret,
3630+                 "()");
3631+  g_variant_unref (_ret);
3632+_out:
3633+  return _ret != NULL;
3634+}
3635+
3636+/**
3637+ * _g_freedesktop_dbus_call_get_id:
3638+ * @proxy: A #_GFreedesktopDBusProxy.
3639+ * @cancellable: (nullable): A #GCancellable or %NULL.
3640+ * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
3641+ * @user_data: User data to pass to @callback.
3642+ *
3643+ * Asynchronously invokes the <link linkend="gdbus-method-org-freedesktop-DBus.GetId">GetId()</link> D-Bus method on @proxy.
3644+ * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from (see g_main_context_push_thread_default()).
3645+ * You can then call _g_freedesktop_dbus_call_get_id_finish() to get the result of the operation.
3646+ *
3647+ * See _g_freedesktop_dbus_call_get_id_sync() for the synchronous, blocking version of this method.
3648+ */
3649+void
3650+_g_freedesktop_dbus_call_get_id (
3651+    _GFreedesktopDBus *proxy,
3652+    GCancellable *cancellable,
3653+    GAsyncReadyCallback callback,
3654+    gpointer user_data)
3655+{
3656+  g_dbus_proxy_call (G_DBUS_PROXY (proxy),
3657+    "GetId",
3658+    g_variant_new ("()"),
3659+    G_DBUS_CALL_FLAGS_NONE,
3660+    -1,
3661+    cancellable,
3662+    callback,
3663+    user_data);
3664+}
3665+
3666+/**
3667+ * _g_freedesktop_dbus_call_get_id_finish:
3668+ * @proxy: A #_GFreedesktopDBusProxy.
3669+ * @out_unique_id: (out) (optional): Return location for return parameter or %NULL to ignore.
3670+ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to _g_freedesktop_dbus_call_get_id().
3671+ * @error: Return location for error or %NULL.
3672+ *
3673+ * Finishes an operation started with _g_freedesktop_dbus_call_get_id().
3674+ *
3675+ * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
3676+ */
3677+gboolean
3678+_g_freedesktop_dbus_call_get_id_finish (
3679+    _GFreedesktopDBus *proxy,
3680+    gchar **out_unique_id,
3681+    GAsyncResult *res,
3682+    GError **error)
3683+{
3684+  GVariant *_ret;
3685+  _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
3686+  if (_ret == NULL)
3687+    goto _out;
3688+  g_variant_get (_ret,
3689+                 "(s)",
3690+                 out_unique_id);
3691+  g_variant_unref (_ret);
3692+_out:
3693+  return _ret != NULL;
3694+}
3695+
3696+/**
3697+ * _g_freedesktop_dbus_call_get_id_sync:
3698+ * @proxy: A #_GFreedesktopDBusProxy.
3699+ * @out_unique_id: (out) (optional): Return location for return parameter or %NULL to ignore.
3700+ * @cancellable: (nullable): A #GCancellable or %NULL.
3701+ * @error: Return location for error or %NULL.
3702+ *
3703+ * Synchronously invokes the <link linkend="gdbus-method-org-freedesktop-DBus.GetId">GetId()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
3704+ *
3705+ * See _g_freedesktop_dbus_call_get_id() for the asynchronous version of this method.
3706+ *
3707+ * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
3708+ */
3709+gboolean
3710+_g_freedesktop_dbus_call_get_id_sync (
3711+    _GFreedesktopDBus *proxy,
3712+    gchar **out_unique_id,
3713+    GCancellable *cancellable,
3714+    GError **error)
3715+{
3716+  GVariant *_ret;
3717+  _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
3718+    "GetId",
3719+    g_variant_new ("()"),
3720+    G_DBUS_CALL_FLAGS_NONE,
3721+    -1,
3722+    cancellable,
3723+    error);
3724+  if (_ret == NULL)
3725+    goto _out;
3726+  g_variant_get (_ret,
3727+                 "(s)",
3728+                 out_unique_id);
3729+  g_variant_unref (_ret);
3730+_out:
3731+  return _ret != NULL;
3732+}
3733+
3734+/**
3735+ * _g_freedesktop_dbus_complete_hello:
3736+ * @object: A #_GFreedesktopDBus.
3737+ * @invocation: (transfer full): A #GDBusMethodInvocation.
3738+ * @assigned_name: Parameter to return.
3739+ *
3740+ * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-freedesktop-DBus.Hello">Hello()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
3741+ *
3742+ * This method will free @invocation, you cannot use it afterwards.
3743+ */
3744+void
3745+_g_freedesktop_dbus_complete_hello (
3746+    _GFreedesktopDBus *object G_GNUC_UNUSED,
3747+    GDBusMethodInvocation *invocation,
3748+    const gchar *assigned_name)
3749+{
3750+  g_dbus_method_invocation_return_value (invocation,
3751+    g_variant_new ("(s)",
3752+                   assigned_name));
3753+}
3754+
3755+/**
3756+ * _g_freedesktop_dbus_complete_request_name:
3757+ * @object: A #_GFreedesktopDBus.
3758+ * @invocation: (transfer full): A #GDBusMethodInvocation.
3759+ * @value: Parameter to return.
3760+ *
3761+ * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-freedesktop-DBus.RequestName">RequestName()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
3762+ *
3763+ * This method will free @invocation, you cannot use it afterwards.
3764+ */
3765+void
3766+_g_freedesktop_dbus_complete_request_name (
3767+    _GFreedesktopDBus *object G_GNUC_UNUSED,
3768+    GDBusMethodInvocation *invocation,
3769+    guint value)
3770+{
3771+  g_dbus_method_invocation_return_value (invocation,
3772+    g_variant_new ("(u)",
3773+                   value));
3774+}
3775+
3776+/**
3777+ * _g_freedesktop_dbus_complete_release_name:
3778+ * @object: A #_GFreedesktopDBus.
3779+ * @invocation: (transfer full): A #GDBusMethodInvocation.
3780+ * @value: Parameter to return.
3781+ *
3782+ * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-freedesktop-DBus.ReleaseName">ReleaseName()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
3783+ *
3784+ * This method will free @invocation, you cannot use it afterwards.
3785+ */
3786+void
3787+_g_freedesktop_dbus_complete_release_name (
3788+    _GFreedesktopDBus *object G_GNUC_UNUSED,
3789+    GDBusMethodInvocation *invocation,
3790+    guint value)
3791+{
3792+  g_dbus_method_invocation_return_value (invocation,
3793+    g_variant_new ("(u)",
3794+                   value));
3795+}
3796+
3797+/**
3798+ * _g_freedesktop_dbus_complete_start_service_by_name:
3799+ * @object: A #_GFreedesktopDBus.
3800+ * @invocation: (transfer full): A #GDBusMethodInvocation.
3801+ * @value: Parameter to return.
3802+ *
3803+ * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-freedesktop-DBus.StartServiceByName">StartServiceByName()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
3804+ *
3805+ * This method will free @invocation, you cannot use it afterwards.
3806+ */
3807+void
3808+_g_freedesktop_dbus_complete_start_service_by_name (
3809+    _GFreedesktopDBus *object G_GNUC_UNUSED,
3810+    GDBusMethodInvocation *invocation,
3811+    guint value)
3812+{
3813+  g_dbus_method_invocation_return_value (invocation,
3814+    g_variant_new ("(u)",
3815+                   value));
3816+}
3817+
3818+/**
3819+ * _g_freedesktop_dbus_complete_name_has_owner:
3820+ * @object: A #_GFreedesktopDBus.
3821+ * @invocation: (transfer full): A #GDBusMethodInvocation.
3822+ * @has_owner: Parameter to return.
3823+ *
3824+ * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-freedesktop-DBus.NameHasOwner">NameHasOwner()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
3825+ *
3826+ * This method will free @invocation, you cannot use it afterwards.
3827+ */
3828+void
3829+_g_freedesktop_dbus_complete_name_has_owner (
3830+    _GFreedesktopDBus *object G_GNUC_UNUSED,
3831+    GDBusMethodInvocation *invocation,
3832+    gboolean has_owner)
3833+{
3834+  g_dbus_method_invocation_return_value (invocation,
3835+    g_variant_new ("(b)",
3836+                   has_owner));
3837+}
3838+
3839+/**
3840+ * _g_freedesktop_dbus_complete_list_names:
3841+ * @object: A #_GFreedesktopDBus.
3842+ * @invocation: (transfer full): A #GDBusMethodInvocation.
3843+ * @names: Parameter to return.
3844+ *
3845+ * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-freedesktop-DBus.ListNames">ListNames()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
3846+ *
3847+ * This method will free @invocation, you cannot use it afterwards.
3848+ */
3849+void
3850+_g_freedesktop_dbus_complete_list_names (
3851+    _GFreedesktopDBus *object G_GNUC_UNUSED,
3852+    GDBusMethodInvocation *invocation,
3853+    const gchar *const *names)
3854+{
3855+  g_dbus_method_invocation_return_value (invocation,
3856+    g_variant_new ("(^as)",
3857+                   names));
3858+}
3859+
3860+/**
3861+ * _g_freedesktop_dbus_complete_list_activatable_names:
3862+ * @object: A #_GFreedesktopDBus.
3863+ * @invocation: (transfer full): A #GDBusMethodInvocation.
3864+ * @activatable_names: Parameter to return.
3865+ *
3866+ * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-freedesktop-DBus.ListActivatableNames">ListActivatableNames()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
3867+ *
3868+ * This method will free @invocation, you cannot use it afterwards.
3869+ */
3870+void
3871+_g_freedesktop_dbus_complete_list_activatable_names (
3872+    _GFreedesktopDBus *object G_GNUC_UNUSED,
3873+    GDBusMethodInvocation *invocation,
3874+    const gchar *const *activatable_names)
3875+{
3876+  g_dbus_method_invocation_return_value (invocation,
3877+    g_variant_new ("(^as)",
3878+                   activatable_names));
3879+}
3880+
3881+/**
3882+ * _g_freedesktop_dbus_complete_add_match:
3883+ * @object: A #_GFreedesktopDBus.
3884+ * @invocation: (transfer full): A #GDBusMethodInvocation.
3885+ *
3886+ * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-freedesktop-DBus.AddMatch">AddMatch()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
3887+ *
3888+ * This method will free @invocation, you cannot use it afterwards.
3889+ */
3890+void
3891+_g_freedesktop_dbus_complete_add_match (
3892+    _GFreedesktopDBus *object G_GNUC_UNUSED,
3893+    GDBusMethodInvocation *invocation)
3894+{
3895+  g_dbus_method_invocation_return_value (invocation,
3896+    g_variant_new ("()"));
3897+}
3898+
3899+/**
3900+ * _g_freedesktop_dbus_complete_remove_match:
3901+ * @object: A #_GFreedesktopDBus.
3902+ * @invocation: (transfer full): A #GDBusMethodInvocation.
3903+ *
3904+ * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-freedesktop-DBus.RemoveMatch">RemoveMatch()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
3905+ *
3906+ * This method will free @invocation, you cannot use it afterwards.
3907+ */
3908+void
3909+_g_freedesktop_dbus_complete_remove_match (
3910+    _GFreedesktopDBus *object G_GNUC_UNUSED,
3911+    GDBusMethodInvocation *invocation)
3912+{
3913+  g_dbus_method_invocation_return_value (invocation,
3914+    g_variant_new ("()"));
3915+}
3916+
3917+/**
3918+ * _g_freedesktop_dbus_complete_get_name_owner:
3919+ * @object: A #_GFreedesktopDBus.
3920+ * @invocation: (transfer full): A #GDBusMethodInvocation.
3921+ * @unique_name: Parameter to return.
3922+ *
3923+ * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-freedesktop-DBus.GetNameOwner">GetNameOwner()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
3924+ *
3925+ * This method will free @invocation, you cannot use it afterwards.
3926+ */
3927+void
3928+_g_freedesktop_dbus_complete_get_name_owner (
3929+    _GFreedesktopDBus *object G_GNUC_UNUSED,
3930+    GDBusMethodInvocation *invocation,
3931+    const gchar *unique_name)
3932+{
3933+  g_dbus_method_invocation_return_value (invocation,
3934+    g_variant_new ("(s)",
3935+                   unique_name));
3936+}
3937+
3938+/**
3939+ * _g_freedesktop_dbus_complete_list_queued_owners:
3940+ * @object: A #_GFreedesktopDBus.
3941+ * @invocation: (transfer full): A #GDBusMethodInvocation.
3942+ * @queued_owners: Parameter to return.
3943+ *
3944+ * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-freedesktop-DBus.ListQueuedOwners">ListQueuedOwners()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
3945+ *
3946+ * This method will free @invocation, you cannot use it afterwards.
3947+ */
3948+void
3949+_g_freedesktop_dbus_complete_list_queued_owners (
3950+    _GFreedesktopDBus *object G_GNUC_UNUSED,
3951+    GDBusMethodInvocation *invocation,
3952+    const gchar *const *queued_owners)
3953+{
3954+  g_dbus_method_invocation_return_value (invocation,
3955+    g_variant_new ("(^as)",
3956+                   queued_owners));
3957+}
3958+
3959+/**
3960+ * _g_freedesktop_dbus_complete_get_connection_unix_user:
3961+ * @object: A #_GFreedesktopDBus.
3962+ * @invocation: (transfer full): A #GDBusMethodInvocation.
3963+ * @uid: Parameter to return.
3964+ *
3965+ * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-freedesktop-DBus.GetConnectionUnixUser">GetConnectionUnixUser()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
3966+ *
3967+ * This method will free @invocation, you cannot use it afterwards.
3968+ */
3969+void
3970+_g_freedesktop_dbus_complete_get_connection_unix_user (
3971+    _GFreedesktopDBus *object G_GNUC_UNUSED,
3972+    GDBusMethodInvocation *invocation,
3973+    guint uid)
3974+{
3975+  g_dbus_method_invocation_return_value (invocation,
3976+    g_variant_new ("(u)",
3977+                   uid));
3978+}
3979+
3980+/**
3981+ * _g_freedesktop_dbus_complete_get_connection_unix_process_id:
3982+ * @object: A #_GFreedesktopDBus.
3983+ * @invocation: (transfer full): A #GDBusMethodInvocation.
3984+ * @pid: Parameter to return.
3985+ *
3986+ * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-freedesktop-DBus.GetConnectionUnixProcessID">GetConnectionUnixProcessID()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
3987+ *
3988+ * This method will free @invocation, you cannot use it afterwards.
3989+ */
3990+void
3991+_g_freedesktop_dbus_complete_get_connection_unix_process_id (
3992+    _GFreedesktopDBus *object G_GNUC_UNUSED,
3993+    GDBusMethodInvocation *invocation,
3994+    guint pid)
3995+{
3996+  g_dbus_method_invocation_return_value (invocation,
3997+    g_variant_new ("(u)",
3998+                   pid));
3999+}
4000+
4001+/**
4002+ * _g_freedesktop_dbus_complete_get_connection_selinux_security_context:
4003+ * @object: A #_GFreedesktopDBus.
4004+ * @invocation: (transfer full): A #GDBusMethodInvocation.
4005+ * @security_context: Parameter to return.
4006+ *
4007+ * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-freedesktop-DBus.GetConnectionSELinuxSecurityContext">GetConnectionSELinuxSecurityContext()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
4008+ *
4009+ * This method will free @invocation, you cannot use it afterwards.
4010+ */
4011+void
4012+_g_freedesktop_dbus_complete_get_connection_selinux_security_context (
4013+    _GFreedesktopDBus *object G_GNUC_UNUSED,
4014+    GDBusMethodInvocation *invocation,
4015+    const gchar *security_context)
4016+{
4017+  g_dbus_method_invocation_return_value (invocation,
4018+    g_variant_new ("(^ay)",
4019+                   security_context));
4020+}
4021+
4022+/**
4023+ * _g_freedesktop_dbus_complete_update_activation_environment:
4024+ * @object: A #_GFreedesktopDBus.
4025+ * @invocation: (transfer full): A #GDBusMethodInvocation.
4026+ *
4027+ * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-freedesktop-DBus.UpdateActivationEnvironment">UpdateActivationEnvironment()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
4028+ *
4029+ * This method will free @invocation, you cannot use it afterwards.
4030+ */
4031+void
4032+_g_freedesktop_dbus_complete_update_activation_environment (
4033+    _GFreedesktopDBus *object G_GNUC_UNUSED,
4034+    GDBusMethodInvocation *invocation)
4035+{
4036+  g_dbus_method_invocation_return_value (invocation,
4037+    g_variant_new ("()"));
4038+}
4039+
4040+/**
4041+ * _g_freedesktop_dbus_complete_reload_config:
4042+ * @object: A #_GFreedesktopDBus.
4043+ * @invocation: (transfer full): A #GDBusMethodInvocation.
4044+ *
4045+ * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-freedesktop-DBus.ReloadConfig">ReloadConfig()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
4046+ *
4047+ * This method will free @invocation, you cannot use it afterwards.
4048+ */
4049+void
4050+_g_freedesktop_dbus_complete_reload_config (
4051+    _GFreedesktopDBus *object G_GNUC_UNUSED,
4052+    GDBusMethodInvocation *invocation)
4053+{
4054+  g_dbus_method_invocation_return_value (invocation,
4055+    g_variant_new ("()"));
4056+}
4057+
4058+/**
4059+ * _g_freedesktop_dbus_complete_get_id:
4060+ * @object: A #_GFreedesktopDBus.
4061+ * @invocation: (transfer full): A #GDBusMethodInvocation.
4062+ * @unique_id: Parameter to return.
4063+ *
4064+ * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-freedesktop-DBus.GetId">GetId()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
4065+ *
4066+ * This method will free @invocation, you cannot use it afterwards.
4067+ */
4068+void
4069+_g_freedesktop_dbus_complete_get_id (
4070+    _GFreedesktopDBus *object G_GNUC_UNUSED,
4071+    GDBusMethodInvocation *invocation,
4072+    const gchar *unique_id)
4073+{
4074+  g_dbus_method_invocation_return_value (invocation,
4075+    g_variant_new ("(s)",
4076+                   unique_id));
4077+}
4078+
4079+/* ------------------------------------------------------------------------ */
4080+
4081+/**
4082+ * _GFreedesktopDBusProxy:
4083+ *
4084+ * The #_GFreedesktopDBusProxy structure contains only private data and should only be accessed using the provided API.
4085+ */
4086+
4087+/**
4088+ * _GFreedesktopDBusProxyClass:
4089+ * @parent_class: The parent class.
4090+ *
4091+ * Class structure for #_GFreedesktopDBusProxy.
4092+ */
4093+
4094+struct __GFreedesktopDBusProxyPrivate
4095+{
4096+  GData *qdata;
4097+};
4098+
4099+static void _g_freedesktop_dbus_proxy_iface_init (_GFreedesktopDBusIface *iface);
4100+
4101+#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
4102+G_DEFINE_TYPE_WITH_CODE (_GFreedesktopDBusProxy, _g_freedesktop_dbus_proxy, G_TYPE_DBUS_PROXY,
4103+                         G_ADD_PRIVATE (_GFreedesktopDBusProxy)
4104+                         G_IMPLEMENT_INTERFACE (_G_TYPE_FREEDESKTOP_DBUS, _g_freedesktop_dbus_proxy_iface_init))
4105+
4106+#else
4107+G_DEFINE_TYPE_WITH_CODE (_GFreedesktopDBusProxy, _g_freedesktop_dbus_proxy, G_TYPE_DBUS_PROXY,
4108+                         G_IMPLEMENT_INTERFACE (_G_TYPE_FREEDESKTOP_DBUS, _g_freedesktop_dbus_proxy_iface_init))
4109+
4110+#endif
4111+static void
4112+_g_freedesktop_dbus_proxy_finalize (GObject *object)
4113+{
4114+  _GFreedesktopDBusProxy *proxy = _G_FREEDESKTOP_DBUS_PROXY (object);
4115+  g_datalist_clear (&proxy->priv->qdata);
4116+  G_OBJECT_CLASS (_g_freedesktop_dbus_proxy_parent_class)->finalize (object);
4117+}
4118+
4119+static void
4120+_g_freedesktop_dbus_proxy_get_property (GObject      *object G_GNUC_UNUSED,
4121+  guint         prop_id G_GNUC_UNUSED,
4122+  GValue       *value G_GNUC_UNUSED,
4123+  GParamSpec   *pspec G_GNUC_UNUSED)
4124+{
4125+}
4126+
4127+static void
4128+_g_freedesktop_dbus_proxy_set_property (GObject      *object G_GNUC_UNUSED,
4129+  guint         prop_id G_GNUC_UNUSED,
4130+  const GValue *value G_GNUC_UNUSED,
4131+  GParamSpec   *pspec G_GNUC_UNUSED)
4132+{
4133+}
4134+
4135+static void
4136+_g_freedesktop_dbus_proxy_g_signal (GDBusProxy *proxy,
4137+  const gchar *sender_name G_GNUC_UNUSED,
4138+  const gchar *signal_name,
4139+  GVariant *parameters)
4140+{
4141+  _ExtendedGDBusSignalInfo *info;
4142+  GVariantIter iter;
4143+  GVariant *child;
4144+  GValue *paramv;
4145+  gsize num_params;
4146+  gsize n;
4147+  guint signal_id;
4148+  info = (_ExtendedGDBusSignalInfo *) g_dbus_interface_info_lookup_signal ((GDBusInterfaceInfo *) &__g_freedesktop_dbus_interface_info.parent_struct, signal_name);
4149+  if (info == NULL)
4150+    return;
4151+  num_params = g_variant_n_children (parameters);
4152+  paramv = g_new0 (GValue, num_params + 1);
4153+  g_value_init (&paramv[0], _G_TYPE_FREEDESKTOP_DBUS);
4154+  g_value_set_object (&paramv[0], proxy);
4155+  g_variant_iter_init (&iter, parameters);
4156+  n = 1;
4157+  while ((child = g_variant_iter_next_value (&iter)) != NULL)
4158+    {
4159+      _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.args[n - 1];
4160+      if (arg_info->use_gvariant)
4161+        {
4162+          g_value_init (&paramv[n], G_TYPE_VARIANT);
4163+          g_value_set_variant (&paramv[n], child);
4164+          n++;
4165+        }
4166+      else
4167+        g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
4168+      g_variant_unref (child);
4169+    }
4170+  signal_id = g_signal_lookup (info->signal_name, _G_TYPE_FREEDESKTOP_DBUS);
4171+  g_signal_emitv (paramv, signal_id, 0, NULL);
4172+  for (n = 0; n < num_params + 1; n++)
4173+    g_value_unset (&paramv[n]);
4174+  g_free (paramv);
4175+}
4176+
4177+static void
4178+_g_freedesktop_dbus_proxy_g_properties_changed (GDBusProxy *_proxy,
4179+  GVariant *changed_properties,
4180+  const gchar *const *invalidated_properties)
4181+{
4182+  _GFreedesktopDBusProxy *proxy = _G_FREEDESKTOP_DBUS_PROXY (_proxy);
4183+  guint n;
4184+  const gchar *key;
4185+  GVariantIter *iter;
4186+  _ExtendedGDBusPropertyInfo *info;
4187+  g_variant_get (changed_properties, "a{sv}", &iter);
4188+  while (g_variant_iter_next (iter, "{&sv}", &key, NULL))
4189+    {
4190+      info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &__g_freedesktop_dbus_interface_info.parent_struct, key);
4191+      g_datalist_remove_data (&proxy->priv->qdata, key);
4192+      if (info != NULL)
4193+        g_object_notify (G_OBJECT (proxy), info->hyphen_name);
4194+    }
4195+  g_variant_iter_free (iter);
4196+  for (n = 0; invalidated_properties[n] != NULL; n++)
4197+    {
4198+      info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &__g_freedesktop_dbus_interface_info.parent_struct, invalidated_properties[n]);
4199+      g_datalist_remove_data (&proxy->priv->qdata, invalidated_properties[n]);
4200+      if (info != NULL)
4201+        g_object_notify (G_OBJECT (proxy), info->hyphen_name);
4202+    }
4203+}
4204+
4205+static void
4206+_g_freedesktop_dbus_proxy_init (_GFreedesktopDBusProxy *proxy)
4207+{
4208+#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
4209+  proxy->priv = _g_freedesktop_dbus_proxy_get_instance_private (proxy);
4210+#else
4211+  proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, _G_TYPE_FREEDESKTOP_DBUS_PROXY, _GFreedesktopDBusProxyPrivate);
4212+#endif
4213+
4214+  g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), _g_freedesktop_dbus_interface_info ());
4215+}
4216+
4217+static void
4218+_g_freedesktop_dbus_proxy_class_init (_GFreedesktopDBusProxyClass *klass)
4219+{
4220+  GObjectClass *gobject_class;
4221+  GDBusProxyClass *proxy_class;
4222+
4223+  gobject_class = G_OBJECT_CLASS (klass);
4224+  gobject_class->finalize     = _g_freedesktop_dbus_proxy_finalize;
4225+  gobject_class->get_property = _g_freedesktop_dbus_proxy_get_property;
4226+  gobject_class->set_property = _g_freedesktop_dbus_proxy_set_property;
4227+
4228+  proxy_class = G_DBUS_PROXY_CLASS (klass);
4229+  proxy_class->g_signal = _g_freedesktop_dbus_proxy_g_signal;
4230+  proxy_class->g_properties_changed = _g_freedesktop_dbus_proxy_g_properties_changed;
4231+
4232+#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
4233+  g_type_class_add_private (klass, sizeof (_GFreedesktopDBusProxyPrivate));
4234+#endif
4235+}
4236+
4237+static void
4238+_g_freedesktop_dbus_proxy_iface_init (_GFreedesktopDBusIface *iface G_GNUC_UNUSED)
4239+{
4240+}
4241+
4242+/**
4243+ * _g_freedesktop_dbus_proxy_new:
4244+ * @connection: A #GDBusConnection.
4245+ * @flags: Flags from the #GDBusProxyFlags enumeration.
4246+ * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
4247+ * @object_path: An object path.
4248+ * @cancellable: (nullable): A #GCancellable or %NULL.
4249+ * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
4250+ * @user_data: User data to pass to @callback.
4251+ *
4252+ * Asynchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-freedesktop-DBus.top_of_page">org.freedesktop.DBus</link>. See g_dbus_proxy_new() for more details.
4253+ *
4254+ * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from (see g_main_context_push_thread_default()).
4255+ * You can then call _g_freedesktop_dbus_proxy_new_finish() to get the result of the operation.
4256+ *
4257+ * See _g_freedesktop_dbus_proxy_new_sync() for the synchronous, blocking version of this constructor.
4258+ */
4259+void
4260+_g_freedesktop_dbus_proxy_new (
4261+    GDBusConnection     *connection,
4262+    GDBusProxyFlags      flags,
4263+    const gchar         *name,
4264+    const gchar         *object_path,
4265+    GCancellable        *cancellable,
4266+    GAsyncReadyCallback  callback,
4267+    gpointer             user_data)
4268+{
4269+  g_async_initable_new_async (_G_TYPE_FREEDESKTOP_DBUS_PROXY, G_PRIORITY_DEFAULT, cancellable, callback, user_data, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.freedesktop.DBus", NULL);
4270+}
4271+
4272+/**
4273+ * _g_freedesktop_dbus_proxy_new_finish:
4274+ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to _g_freedesktop_dbus_proxy_new().
4275+ * @error: Return location for error or %NULL
4276+ *
4277+ * Finishes an operation started with _g_freedesktop_dbus_proxy_new().
4278+ *
4279+ * Returns: (transfer full) (type _GFreedesktopDBusProxy): The constructed proxy object or %NULL if @error is set.
4280+ */
4281+_GFreedesktopDBus *
4282+_g_freedesktop_dbus_proxy_new_finish (
4283+    GAsyncResult        *res,
4284+    GError             **error)
4285+{
4286+  GObject *ret;
4287+  GObject *source_object;
4288+  source_object = g_async_result_get_source_object (res);
4289+  ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
4290+  g_object_unref (source_object);
4291+  if (ret != NULL)
4292+    return _G_FREEDESKTOP_DBUS (ret);
4293+  else
4294+    return NULL;
4295+}
4296+
4297+/**
4298+ * _g_freedesktop_dbus_proxy_new_sync:
4299+ * @connection: A #GDBusConnection.
4300+ * @flags: Flags from the #GDBusProxyFlags enumeration.
4301+ * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
4302+ * @object_path: An object path.
4303+ * @cancellable: (nullable): A #GCancellable or %NULL.
4304+ * @error: Return location for error or %NULL
4305+ *
4306+ * Synchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-freedesktop-DBus.top_of_page">org.freedesktop.DBus</link>. See g_dbus_proxy_new_sync() for more details.
4307+ *
4308+ * The calling thread is blocked until a reply is received.
4309+ *
4310+ * See _g_freedesktop_dbus_proxy_new() for the asynchronous version of this constructor.
4311+ *
4312+ * Returns: (transfer full) (type _GFreedesktopDBusProxy): The constructed proxy object or %NULL if @error is set.
4313+ */
4314+_GFreedesktopDBus *
4315+_g_freedesktop_dbus_proxy_new_sync (
4316+    GDBusConnection     *connection,
4317+    GDBusProxyFlags      flags,
4318+    const gchar         *name,
4319+    const gchar         *object_path,
4320+    GCancellable        *cancellable,
4321+    GError             **error)
4322+{
4323+  GInitable *ret;
4324+  ret = g_initable_new (_G_TYPE_FREEDESKTOP_DBUS_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.freedesktop.DBus", NULL);
4325+  if (ret != NULL)
4326+    return _G_FREEDESKTOP_DBUS (ret);
4327+  else
4328+    return NULL;
4329+}
4330+
4331+
4332+/**
4333+ * _g_freedesktop_dbus_proxy_new_for_bus:
4334+ * @bus_type: A #GBusType.
4335+ * @flags: Flags from the #GDBusProxyFlags enumeration.
4336+ * @name: A bus name (well-known or unique).
4337+ * @object_path: An object path.
4338+ * @cancellable: (nullable): A #GCancellable or %NULL.
4339+ * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
4340+ * @user_data: User data to pass to @callback.
4341+ *
4342+ * Like _g_freedesktop_dbus_proxy_new() but takes a #GBusType instead of a #GDBusConnection.
4343+ *
4344+ * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from (see g_main_context_push_thread_default()).
4345+ * You can then call _g_freedesktop_dbus_proxy_new_for_bus_finish() to get the result of the operation.
4346+ *
4347+ * See _g_freedesktop_dbus_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.
4348+ */
4349+void
4350+_g_freedesktop_dbus_proxy_new_for_bus (
4351+    GBusType             bus_type,
4352+    GDBusProxyFlags      flags,
4353+    const gchar         *name,
4354+    const gchar         *object_path,
4355+    GCancellable        *cancellable,
4356+    GAsyncReadyCallback  callback,
4357+    gpointer             user_data)
4358+{
4359+  g_async_initable_new_async (_G_TYPE_FREEDESKTOP_DBUS_PROXY, G_PRIORITY_DEFAULT, cancellable, callback, user_data, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.freedesktop.DBus", NULL);
4360+}
4361+
4362+/**
4363+ * _g_freedesktop_dbus_proxy_new_for_bus_finish:
4364+ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to _g_freedesktop_dbus_proxy_new_for_bus().
4365+ * @error: Return location for error or %NULL
4366+ *
4367+ * Finishes an operation started with _g_freedesktop_dbus_proxy_new_for_bus().
4368+ *
4369+ * Returns: (transfer full) (type _GFreedesktopDBusProxy): The constructed proxy object or %NULL if @error is set.
4370+ */
4371+_GFreedesktopDBus *
4372+_g_freedesktop_dbus_proxy_new_for_bus_finish (
4373+    GAsyncResult        *res,
4374+    GError             **error)
4375+{
4376+  GObject *ret;
4377+  GObject *source_object;
4378+  source_object = g_async_result_get_source_object (res);
4379+  ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
4380+  g_object_unref (source_object);
4381+  if (ret != NULL)
4382+    return _G_FREEDESKTOP_DBUS (ret);
4383+  else
4384+    return NULL;
4385+}
4386+
4387+/**
4388+ * _g_freedesktop_dbus_proxy_new_for_bus_sync:
4389+ * @bus_type: A #GBusType.
4390+ * @flags: Flags from the #GDBusProxyFlags enumeration.
4391+ * @name: A bus name (well-known or unique).
4392+ * @object_path: An object path.
4393+ * @cancellable: (nullable): A #GCancellable or %NULL.
4394+ * @error: Return location for error or %NULL
4395+ *
4396+ * Like _g_freedesktop_dbus_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.
4397+ *
4398+ * The calling thread is blocked until a reply is received.
4399+ *
4400+ * See _g_freedesktop_dbus_proxy_new_for_bus() for the asynchronous version of this constructor.
4401+ *
4402+ * Returns: (transfer full) (type _GFreedesktopDBusProxy): The constructed proxy object or %NULL if @error is set.
4403+ */
4404+_GFreedesktopDBus *
4405+_g_freedesktop_dbus_proxy_new_for_bus_sync (
4406+    GBusType             bus_type,
4407+    GDBusProxyFlags      flags,
4408+    const gchar         *name,
4409+    const gchar         *object_path,
4410+    GCancellable        *cancellable,
4411+    GError             **error)
4412+{
4413+  GInitable *ret;
4414+  ret = g_initable_new (_G_TYPE_FREEDESKTOP_DBUS_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.freedesktop.DBus", NULL);
4415+  if (ret != NULL)
4416+    return _G_FREEDESKTOP_DBUS (ret);
4417+  else
4418+    return NULL;
4419+}
4420+
4421+
4422+/* ------------------------------------------------------------------------ */
4423+
4424+/**
4425+ * _GFreedesktopDBusSkeleton:
4426+ *
4427+ * The #_GFreedesktopDBusSkeleton structure contains only private data and should only be accessed using the provided API.
4428+ */
4429+
4430+/**
4431+ * _GFreedesktopDBusSkeletonClass:
4432+ * @parent_class: The parent class.
4433+ *
4434+ * Class structure for #_GFreedesktopDBusSkeleton.
4435+ */
4436+
4437+struct __GFreedesktopDBusSkeletonPrivate
4438+{
4439+  GValue *properties;
4440+  GList *changed_properties;
4441+  GSource *changed_properties_idle_source;
4442+  GMainContext *context;
4443+  GMutex lock;
4444+};
4445+
4446+static void
4447+__g_freedesktop_dbus_skeleton_handle_method_call (
4448+  GDBusConnection *connection G_GNUC_UNUSED,
4449+  const gchar *sender G_GNUC_UNUSED,
4450+  const gchar *object_path G_GNUC_UNUSED,
4451+  const gchar *interface_name,
4452+  const gchar *method_name,
4453+  GVariant *parameters,
4454+  GDBusMethodInvocation *invocation,
4455+  gpointer user_data)
4456+{
4457+  _GFreedesktopDBusSkeleton *skeleton = _G_FREEDESKTOP_DBUS_SKELETON (user_data);
4458+  _ExtendedGDBusMethodInfo *info;
4459+  GVariantIter iter;
4460+  GVariant *child;
4461+  GValue *paramv;
4462+  gsize num_params;
4463+  guint num_extra;
4464+  gsize n;
4465+  guint signal_id;
4466+  GValue return_value = G_VALUE_INIT;
4467+  info = (_ExtendedGDBusMethodInfo *) g_dbus_method_invocation_get_method_info (invocation);
4468+  g_assert (info != NULL);
4469+  num_params = g_variant_n_children (parameters);
4470+  num_extra = info->pass_fdlist ? 3 : 2;  paramv = g_new0 (GValue, num_params + num_extra);
4471+  n = 0;
4472+  g_value_init (&paramv[n], _G_TYPE_FREEDESKTOP_DBUS);
4473+  g_value_set_object (&paramv[n++], skeleton);
4474+  g_value_init (&paramv[n], G_TYPE_DBUS_METHOD_INVOCATION);
4475+  g_value_set_object (&paramv[n++], invocation);
4476+  if (info->pass_fdlist)
4477+    {
4478+#ifdef G_OS_UNIX
4479+      g_value_init (&paramv[n], G_TYPE_UNIX_FD_LIST);
4480+      g_value_set_object (&paramv[n++], g_dbus_message_get_unix_fd_list (g_dbus_method_invocation_get_message (invocation)));
4481+#else
4482+      g_assert_not_reached ();
4483+#endif
4484+    }
4485+  g_variant_iter_init (&iter, parameters);
4486+  while ((child = g_variant_iter_next_value (&iter)) != NULL)
4487+    {
4488+      _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.in_args[n - num_extra];
4489+      if (arg_info->use_gvariant)
4490+        {
4491+          g_value_init (&paramv[n], G_TYPE_VARIANT);
4492+          g_value_set_variant (&paramv[n], child);
4493+          n++;
4494+        }
4495+      else
4496+        g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
4497+      g_variant_unref (child);
4498+    }
4499+  signal_id = g_signal_lookup (info->signal_name, _G_TYPE_FREEDESKTOP_DBUS);
4500+  g_value_init (&return_value, G_TYPE_BOOLEAN);
4501+  g_signal_emitv (paramv, signal_id, 0, &return_value);
4502+  if (!g_value_get_boolean (&return_value))
4503+    g_dbus_method_invocation_return_error (invocation, G_DBUS_ERROR, G_DBUS_ERROR_UNKNOWN_METHOD, "Method %s is not implemented on interface %s", method_name, interface_name);
4504+  g_value_unset (&return_value);
4505+  for (n = 0; n < num_params + num_extra; n++)
4506+    g_value_unset (&paramv[n]);
4507+  g_free (paramv);
4508+}
4509+
4510+static GVariant *
4511+__g_freedesktop_dbus_skeleton_handle_get_property (
4512+  GDBusConnection *connection G_GNUC_UNUSED,
4513+  const gchar *sender G_GNUC_UNUSED,
4514+  const gchar *object_path G_GNUC_UNUSED,
4515+  const gchar *interface_name G_GNUC_UNUSED,
4516+  const gchar *property_name,
4517+  GError **error,
4518+  gpointer user_data)
4519+{
4520+  _GFreedesktopDBusSkeleton *skeleton = _G_FREEDESKTOP_DBUS_SKELETON (user_data);
4521+  GValue value = G_VALUE_INIT;
4522+  GParamSpec *pspec;
4523+  _ExtendedGDBusPropertyInfo *info;
4524+  GVariant *ret;
4525+  ret = NULL;
4526+  info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &__g_freedesktop_dbus_interface_info.parent_struct, property_name);
4527+  g_assert (info != NULL);
4528+  pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
4529+  if (pspec == NULL)
4530+    {
4531+      g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
4532+    }
4533+  else
4534+    {
4535+      g_value_init (&value, pspec->value_type);
4536+      g_object_get_property (G_OBJECT (skeleton), info->hyphen_name, &value);
4537+      ret = g_dbus_gvalue_to_gvariant (&value, G_VARIANT_TYPE (info->parent_struct.signature));
4538+      g_value_unset (&value);
4539+    }
4540+  return ret;
4541+}
4542+
4543+static gboolean
4544+__g_freedesktop_dbus_skeleton_handle_set_property (
4545+  GDBusConnection *connection G_GNUC_UNUSED,
4546+  const gchar *sender G_GNUC_UNUSED,
4547+  const gchar *object_path G_GNUC_UNUSED,
4548+  const gchar *interface_name G_GNUC_UNUSED,
4549+  const gchar *property_name,
4550+  GVariant *variant,
4551+  GError **error,
4552+  gpointer user_data)
4553+{
4554+  _GFreedesktopDBusSkeleton *skeleton = _G_FREEDESKTOP_DBUS_SKELETON (user_data);
4555+  GValue value = G_VALUE_INIT;
4556+  GParamSpec *pspec;
4557+  _ExtendedGDBusPropertyInfo *info;
4558+  gboolean ret;
4559+  ret = FALSE;
4560+  info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &__g_freedesktop_dbus_interface_info.parent_struct, property_name);
4561+  g_assert (info != NULL);
4562+  pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
4563+  if (pspec == NULL)
4564+    {
4565+      g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
4566+    }
4567+  else
4568+    {
4569+      if (info->use_gvariant)
4570+        g_value_set_variant (&value, variant);
4571+      else
4572+        g_dbus_gvariant_to_gvalue (variant, &value);
4573+      g_object_set_property (G_OBJECT (skeleton), info->hyphen_name, &value);
4574+      g_value_unset (&value);
4575+      ret = TRUE;
4576+    }
4577+  return ret;
4578+}
4579+
4580+static const GDBusInterfaceVTable __g_freedesktop_dbus_skeleton_vtable =
4581+{
4582+  __g_freedesktop_dbus_skeleton_handle_method_call,
4583+  __g_freedesktop_dbus_skeleton_handle_get_property,
4584+  __g_freedesktop_dbus_skeleton_handle_set_property,
4585+  {NULL}
4586+};
4587+
4588+static GDBusInterfaceInfo *
4589+_g_freedesktop_dbus_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
4590+{
4591+  return _g_freedesktop_dbus_interface_info ();
4592+}
4593+
4594+static GDBusInterfaceVTable *
4595+_g_freedesktop_dbus_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
4596+{
4597+  return (GDBusInterfaceVTable *) &__g_freedesktop_dbus_skeleton_vtable;
4598+}
4599+
4600+static GVariant *
4601+_g_freedesktop_dbus_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton)
4602+{
4603+  _GFreedesktopDBusSkeleton *skeleton = _G_FREEDESKTOP_DBUS_SKELETON (_skeleton);
4604+
4605+  GVariantBuilder builder;
4606+  guint n;
4607+  g_variant_builder_init (&builder, G_VARIANT_TYPE ("a{sv}"));
4608+  if (__g_freedesktop_dbus_interface_info.parent_struct.properties == NULL)
4609+    goto out;
4610+  for (n = 0; __g_freedesktop_dbus_interface_info.parent_struct.properties[n] != NULL; n++)
4611+    {
4612+      GDBusPropertyInfo *info = __g_freedesktop_dbus_interface_info.parent_struct.properties[n];
4613+      if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE)
4614+        {
4615+          GVariant *value;
4616+          value = __g_freedesktop_dbus_skeleton_handle_get_property (g_dbus_interface_skeleton_get_connection (G_DBUS_INTERFACE_SKELETON (skeleton)), NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "org.freedesktop.DBus", info->name, NULL, skeleton);
4617+          if (value != NULL)
4618+            {
4619+              g_variant_take_ref (value);
4620+              g_variant_builder_add (&builder, "{sv}", info->name, value);
4621+              g_variant_unref (value);
4622+            }
4623+        }
4624+    }
4625+out:
4626+  return g_variant_builder_end (&builder);
4627+}
4628+
4629+static void
4630+_g_freedesktop_dbus_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton G_GNUC_UNUSED)
4631+{
4632+}
4633+
4634+static void
4635+__g_freedesktop_dbus_on_signal_name_owner_changed (
4636+    _GFreedesktopDBus *object,
4637+    const gchar *arg_name,
4638+    const gchar *arg_old_owner,
4639+    const gchar *arg_new_owner)
4640+{
4641+  _GFreedesktopDBusSkeleton *skeleton = _G_FREEDESKTOP_DBUS_SKELETON (object);
4642+
4643+  GList      *connections, *l;
4644+  GVariant   *signal_variant;
4645+  connections = g_dbus_interface_skeleton_get_connections (G_DBUS_INTERFACE_SKELETON (skeleton));
4646+
4647+  signal_variant = g_variant_ref_sink (g_variant_new ("(sss)",
4648+                   arg_name,
4649+                   arg_old_owner,
4650+                   arg_new_owner));
4651+  for (l = connections; l != NULL; l = l->next)
4652+    {
4653+      GDBusConnection *connection = l->data;
4654+      g_dbus_connection_emit_signal (connection,
4655+        NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "org.freedesktop.DBus", "NameOwnerChanged",
4656+        signal_variant, NULL);
4657+    }
4658+  g_variant_unref (signal_variant);
4659+  g_list_free_full (connections, g_object_unref);
4660+}
4661+
4662+static void
4663+__g_freedesktop_dbus_on_signal_name_lost (
4664+    _GFreedesktopDBus *object,
4665+    const gchar *arg_name)
4666+{
4667+  _GFreedesktopDBusSkeleton *skeleton = _G_FREEDESKTOP_DBUS_SKELETON (object);
4668+
4669+  GList      *connections, *l;
4670+  GVariant   *signal_variant;
4671+  connections = g_dbus_interface_skeleton_get_connections (G_DBUS_INTERFACE_SKELETON (skeleton));
4672+
4673+  signal_variant = g_variant_ref_sink (g_variant_new ("(s)",
4674+                   arg_name));
4675+  for (l = connections; l != NULL; l = l->next)
4676+    {
4677+      GDBusConnection *connection = l->data;
4678+      g_dbus_connection_emit_signal (connection,
4679+        NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "org.freedesktop.DBus", "NameLost",
4680+        signal_variant, NULL);
4681+    }
4682+  g_variant_unref (signal_variant);
4683+  g_list_free_full (connections, g_object_unref);
4684+}
4685+
4686+static void
4687+__g_freedesktop_dbus_on_signal_name_acquired (
4688+    _GFreedesktopDBus *object,
4689+    const gchar *arg_name)
4690+{
4691+  _GFreedesktopDBusSkeleton *skeleton = _G_FREEDESKTOP_DBUS_SKELETON (object);
4692+
4693+  GList      *connections, *l;
4694+  GVariant   *signal_variant;
4695+  connections = g_dbus_interface_skeleton_get_connections (G_DBUS_INTERFACE_SKELETON (skeleton));
4696+
4697+  signal_variant = g_variant_ref_sink (g_variant_new ("(s)",
4698+                   arg_name));
4699+  for (l = connections; l != NULL; l = l->next)
4700+    {
4701+      GDBusConnection *connection = l->data;
4702+      g_dbus_connection_emit_signal (connection,
4703+        NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "org.freedesktop.DBus", "NameAcquired",
4704+        signal_variant, NULL);
4705+    }
4706+  g_variant_unref (signal_variant);
4707+  g_list_free_full (connections, g_object_unref);
4708+}
4709+
4710+static void _g_freedesktop_dbus_skeleton_iface_init (_GFreedesktopDBusIface *iface);
4711+#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
4712+G_DEFINE_TYPE_WITH_CODE (_GFreedesktopDBusSkeleton, _g_freedesktop_dbus_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
4713+                         G_ADD_PRIVATE (_GFreedesktopDBusSkeleton)
4714+                         G_IMPLEMENT_INTERFACE (_G_TYPE_FREEDESKTOP_DBUS, _g_freedesktop_dbus_skeleton_iface_init))
4715+
4716+#else
4717+G_DEFINE_TYPE_WITH_CODE (_GFreedesktopDBusSkeleton, _g_freedesktop_dbus_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
4718+                         G_IMPLEMENT_INTERFACE (_G_TYPE_FREEDESKTOP_DBUS, _g_freedesktop_dbus_skeleton_iface_init))
4719+
4720+#endif
4721+static void
4722+_g_freedesktop_dbus_skeleton_finalize (GObject *object)
4723+{
4724+  _GFreedesktopDBusSkeleton *skeleton = _G_FREEDESKTOP_DBUS_SKELETON (object);
4725+  g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free);
4726+  if (skeleton->priv->changed_properties_idle_source != NULL)
4727+    g_source_destroy (skeleton->priv->changed_properties_idle_source);
4728+  g_main_context_unref (skeleton->priv->context);
4729+  g_mutex_clear (&skeleton->priv->lock);
4730+  G_OBJECT_CLASS (_g_freedesktop_dbus_skeleton_parent_class)->finalize (object);
4731+}
4732+
4733+static void
4734+_g_freedesktop_dbus_skeleton_init (_GFreedesktopDBusSkeleton *skeleton)
4735+{
4736+#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
4737+  skeleton->priv = _g_freedesktop_dbus_skeleton_get_instance_private (skeleton);
4738+#else
4739+  skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, _G_TYPE_FREEDESKTOP_DBUS_SKELETON, _GFreedesktopDBusSkeletonPrivate);
4740+#endif
4741+
4742+  g_mutex_init (&skeleton->priv->lock);
4743+  skeleton->priv->context = g_main_context_ref_thread_default ();
4744+}
4745+
4746+static void
4747+_g_freedesktop_dbus_skeleton_class_init (_GFreedesktopDBusSkeletonClass *klass)
4748+{
4749+  GObjectClass *gobject_class;
4750+  GDBusInterfaceSkeletonClass *skeleton_class;
4751+
4752+  gobject_class = G_OBJECT_CLASS (klass);
4753+  gobject_class->finalize = _g_freedesktop_dbus_skeleton_finalize;
4754+
4755+  skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass);
4756+  skeleton_class->get_info = _g_freedesktop_dbus_skeleton_dbus_interface_get_info;
4757+  skeleton_class->get_properties = _g_freedesktop_dbus_skeleton_dbus_interface_get_properties;
4758+  skeleton_class->flush = _g_freedesktop_dbus_skeleton_dbus_interface_flush;
4759+  skeleton_class->get_vtable = _g_freedesktop_dbus_skeleton_dbus_interface_get_vtable;
4760+
4761+#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
4762+  g_type_class_add_private (klass, sizeof (_GFreedesktopDBusSkeletonPrivate));
4763+#endif
4764+}
4765+
4766+static void
4767+_g_freedesktop_dbus_skeleton_iface_init (_GFreedesktopDBusIface *iface)
4768+{
4769+  iface->name_owner_changed = __g_freedesktop_dbus_on_signal_name_owner_changed;
4770+  iface->name_lost = __g_freedesktop_dbus_on_signal_name_lost;
4771+  iface->name_acquired = __g_freedesktop_dbus_on_signal_name_acquired;
4772+}
4773+
4774+/**
4775+ * _g_freedesktop_dbus_skeleton_new:
4776+ *
4777+ * Creates a skeleton object for the D-Bus interface <link linkend="gdbus-interface-org-freedesktop-DBus.top_of_page">org.freedesktop.DBus</link>.
4778+ *
4779+ * Returns: (transfer full) (type _GFreedesktopDBusSkeleton): The skeleton object.
4780+ */
4781+_GFreedesktopDBus *
4782+_g_freedesktop_dbus_skeleton_new (void)
4783+{
4784+  return _G_FREEDESKTOP_DBUS (g_object_new (_G_TYPE_FREEDESKTOP_DBUS_SKELETON, NULL));
4785+}
4786+
4787diff --git a/gio/gdbus-daemon-generated.h b/gio/gdbus-daemon-generated.h
4788new file mode 100644
4789index 0000000..8a99684
4790--- /dev/null
4791+++ b/gio/gdbus-daemon-generated.h
4792@@ -0,0 +1,674 @@
4793+/*
4794+ * This file is generated by gdbus-codegen, do not modify it.
4795+ *
4796+ * The license of this code is the same as for the D-Bus interface description
4797+ * it was derived from. Note that it links to GLib, so must comply with the
4798+ * LGPL linking clauses.
4799+ */
4800+
4801+#ifndef __GDBUS_DAEMON_GENERATED_H__
4802+#define __GDBUS_DAEMON_GENERATED_H__
4803+
4804+#include <gio/gio.h>
4805+
4806+G_BEGIN_DECLS
4807+
4808+
4809+/* ------------------------------------------------------------------------ */
4810+/* Declarations for org.freedesktop.DBus */
4811+
4812+#define _G_TYPE_FREEDESKTOP_DBUS (_g_freedesktop_dbus_get_type ())
4813+#define _G_FREEDESKTOP_DBUS(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), _G_TYPE_FREEDESKTOP_DBUS, _GFreedesktopDBus))
4814+#define _G_IS_FREEDESKTOP_DBUS(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), _G_TYPE_FREEDESKTOP_DBUS))
4815+#define _G_FREEDESKTOP_DBUS_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), _G_TYPE_FREEDESKTOP_DBUS, _GFreedesktopDBusIface))
4816+
4817+struct __GFreedesktopDBus;
4818+typedef struct __GFreedesktopDBus _GFreedesktopDBus;
4819+typedef struct __GFreedesktopDBusIface _GFreedesktopDBusIface;
4820+
4821+struct __GFreedesktopDBusIface
4822+{
4823+  GTypeInterface parent_iface;
4824+
4825+
4826+  gboolean (*handle_add_match) (
4827+    _GFreedesktopDBus *object,
4828+    GDBusMethodInvocation *invocation,
4829+    const gchar *arg_rule);
4830+
4831+  gboolean (*handle_get_connection_selinux_security_context) (
4832+    _GFreedesktopDBus *object,
4833+    GDBusMethodInvocation *invocation,
4834+    const gchar *arg_name);
4835+
4836+  gboolean (*handle_get_connection_unix_process_id) (
4837+    _GFreedesktopDBus *object,
4838+    GDBusMethodInvocation *invocation,
4839+    const gchar *arg_name);
4840+
4841+  gboolean (*handle_get_connection_unix_user) (
4842+    _GFreedesktopDBus *object,
4843+    GDBusMethodInvocation *invocation,
4844+    const gchar *arg_name);
4845+
4846+  gboolean (*handle_get_id) (
4847+    _GFreedesktopDBus *object,
4848+    GDBusMethodInvocation *invocation);
4849+
4850+  gboolean (*handle_get_name_owner) (
4851+    _GFreedesktopDBus *object,
4852+    GDBusMethodInvocation *invocation,
4853+    const gchar *arg_name);
4854+
4855+  gboolean (*handle_hello) (
4856+    _GFreedesktopDBus *object,
4857+    GDBusMethodInvocation *invocation);
4858+
4859+  gboolean (*handle_list_activatable_names) (
4860+    _GFreedesktopDBus *object,
4861+    GDBusMethodInvocation *invocation);
4862+
4863+  gboolean (*handle_list_names) (
4864+    _GFreedesktopDBus *object,
4865+    GDBusMethodInvocation *invocation);
4866+
4867+  gboolean (*handle_list_queued_owners) (
4868+    _GFreedesktopDBus *object,
4869+    GDBusMethodInvocation *invocation,
4870+    const gchar *arg_name);
4871+
4872+  gboolean (*handle_name_has_owner) (
4873+    _GFreedesktopDBus *object,
4874+    GDBusMethodInvocation *invocation,
4875+    const gchar *arg_name);
4876+
4877+  gboolean (*handle_release_name) (
4878+    _GFreedesktopDBus *object,
4879+    GDBusMethodInvocation *invocation,
4880+    const gchar *arg_name);
4881+
4882+  gboolean (*handle_reload_config) (
4883+    _GFreedesktopDBus *object,
4884+    GDBusMethodInvocation *invocation);
4885+
4886+  gboolean (*handle_remove_match) (
4887+    _GFreedesktopDBus *object,
4888+    GDBusMethodInvocation *invocation,
4889+    const gchar *arg_rule);
4890+
4891+  gboolean (*handle_request_name) (
4892+    _GFreedesktopDBus *object,
4893+    GDBusMethodInvocation *invocation,
4894+    const gchar *arg_name,
4895+    guint arg_flags);
4896+
4897+  gboolean (*handle_start_service_by_name) (
4898+    _GFreedesktopDBus *object,
4899+    GDBusMethodInvocation *invocation,
4900+    const gchar *arg_name,
4901+    guint arg_flags);
4902+
4903+  gboolean (*handle_update_activation_environment) (
4904+    _GFreedesktopDBus *object,
4905+    GDBusMethodInvocation *invocation,
4906+    GVariant *arg_environment);
4907+
4908+  void (*name_acquired) (
4909+    _GFreedesktopDBus *object,
4910+    const gchar *arg_name);
4911+
4912+  void (*name_lost) (
4913+    _GFreedesktopDBus *object,
4914+    const gchar *arg_name);
4915+
4916+  void (*name_owner_changed) (
4917+    _GFreedesktopDBus *object,
4918+    const gchar *arg_name,
4919+    const gchar *arg_old_owner,
4920+    const gchar *arg_new_owner);
4921+
4922+};
4923+
4924+GType _g_freedesktop_dbus_get_type (void) G_GNUC_CONST;
4925+
4926+GDBusInterfaceInfo *_g_freedesktop_dbus_interface_info (void);
4927+guint _g_freedesktop_dbus_override_properties (GObjectClass *klass, guint property_id_begin);
4928+
4929+
4930+/* D-Bus method call completion functions: */
4931+void _g_freedesktop_dbus_complete_hello (
4932+    _GFreedesktopDBus *object,
4933+    GDBusMethodInvocation *invocation,
4934+    const gchar *assigned_name);
4935+
4936+void _g_freedesktop_dbus_complete_request_name (
4937+    _GFreedesktopDBus *object,
4938+    GDBusMethodInvocation *invocation,
4939+    guint value);
4940+
4941+void _g_freedesktop_dbus_complete_release_name (
4942+    _GFreedesktopDBus *object,
4943+    GDBusMethodInvocation *invocation,
4944+    guint value);
4945+
4946+void _g_freedesktop_dbus_complete_start_service_by_name (
4947+    _GFreedesktopDBus *object,
4948+    GDBusMethodInvocation *invocation,
4949+    guint value);
4950+
4951+void _g_freedesktop_dbus_complete_name_has_owner (
4952+    _GFreedesktopDBus *object,
4953+    GDBusMethodInvocation *invocation,
4954+    gboolean has_owner);
4955+
4956+void _g_freedesktop_dbus_complete_list_names (
4957+    _GFreedesktopDBus *object,
4958+    GDBusMethodInvocation *invocation,
4959+    const gchar *const *names);
4960+
4961+void _g_freedesktop_dbus_complete_list_activatable_names (
4962+    _GFreedesktopDBus *object,
4963+    GDBusMethodInvocation *invocation,
4964+    const gchar *const *activatable_names);
4965+
4966+void _g_freedesktop_dbus_complete_add_match (
4967+    _GFreedesktopDBus *object,
4968+    GDBusMethodInvocation *invocation);
4969+
4970+void _g_freedesktop_dbus_complete_remove_match (
4971+    _GFreedesktopDBus *object,
4972+    GDBusMethodInvocation *invocation);
4973+
4974+void _g_freedesktop_dbus_complete_get_name_owner (
4975+    _GFreedesktopDBus *object,
4976+    GDBusMethodInvocation *invocation,
4977+    const gchar *unique_name);
4978+
4979+void _g_freedesktop_dbus_complete_list_queued_owners (
4980+    _GFreedesktopDBus *object,
4981+    GDBusMethodInvocation *invocation,
4982+    const gchar *const *queued_owners);
4983+
4984+void _g_freedesktop_dbus_complete_get_connection_unix_user (
4985+    _GFreedesktopDBus *object,
4986+    GDBusMethodInvocation *invocation,
4987+    guint uid);
4988+
4989+void _g_freedesktop_dbus_complete_get_connection_unix_process_id (
4990+    _GFreedesktopDBus *object,
4991+    GDBusMethodInvocation *invocation,
4992+    guint pid);
4993+
4994+void _g_freedesktop_dbus_complete_get_connection_selinux_security_context (
4995+    _GFreedesktopDBus *object,
4996+    GDBusMethodInvocation *invocation,
4997+    const gchar *security_context);
4998+
4999+void _g_freedesktop_dbus_complete_update_activation_environment (
5000+    _GFreedesktopDBus *object,
5001+    GDBusMethodInvocation *invocation);
5002+
5003+void _g_freedesktop_dbus_complete_reload_config (
5004+    _GFreedesktopDBus *object,
5005+    GDBusMethodInvocation *invocation);
5006+
5007+void _g_freedesktop_dbus_complete_get_id (
5008+    _GFreedesktopDBus *object,
5009+    GDBusMethodInvocation *invocation,
5010+    const gchar *unique_id);
5011+
5012+
5013+
5014+/* D-Bus signal emissions functions: */
5015+void _g_freedesktop_dbus_emit_name_owner_changed (
5016+    _GFreedesktopDBus *object,
5017+    const gchar *arg_name,
5018+    const gchar *arg_old_owner,
5019+    const gchar *arg_new_owner);
5020+
5021+void _g_freedesktop_dbus_emit_name_lost (
5022+    _GFreedesktopDBus *object,
5023+    const gchar *arg_name);
5024+
5025+void _g_freedesktop_dbus_emit_name_acquired (
5026+    _GFreedesktopDBus *object,
5027+    const gchar *arg_name);
5028+
5029+
5030+
5031+/* D-Bus method calls: */
5032+void _g_freedesktop_dbus_call_hello (
5033+    _GFreedesktopDBus *proxy,
5034+    GCancellable *cancellable,
5035+    GAsyncReadyCallback callback,
5036+    gpointer user_data);
5037+
5038+gboolean _g_freedesktop_dbus_call_hello_finish (
5039+    _GFreedesktopDBus *proxy,
5040+    gchar **out_assigned_name,
5041+    GAsyncResult *res,
5042+    GError **error);
5043+
5044+gboolean _g_freedesktop_dbus_call_hello_sync (
5045+    _GFreedesktopDBus *proxy,
5046+    gchar **out_assigned_name,
5047+    GCancellable *cancellable,
5048+    GError **error);
5049+
5050+void _g_freedesktop_dbus_call_request_name (
5051+    _GFreedesktopDBus *proxy,
5052+    const gchar *arg_name,
5053+    guint arg_flags,
5054+    GCancellable *cancellable,
5055+    GAsyncReadyCallback callback,
5056+    gpointer user_data);
5057+
5058+gboolean _g_freedesktop_dbus_call_request_name_finish (
5059+    _GFreedesktopDBus *proxy,
5060+    guint *out_value,
5061+    GAsyncResult *res,
5062+    GError **error);
5063+
5064+gboolean _g_freedesktop_dbus_call_request_name_sync (
5065+    _GFreedesktopDBus *proxy,
5066+    const gchar *arg_name,
5067+    guint arg_flags,
5068+    guint *out_value,
5069+    GCancellable *cancellable,
5070+    GError **error);
5071+
5072+void _g_freedesktop_dbus_call_release_name (
5073+    _GFreedesktopDBus *proxy,
5074+    const gchar *arg_name,
5075+    GCancellable *cancellable,
5076+    GAsyncReadyCallback callback,
5077+    gpointer user_data);
5078+
5079+gboolean _g_freedesktop_dbus_call_release_name_finish (
5080+    _GFreedesktopDBus *proxy,
5081+    guint *out_value,
5082+    GAsyncResult *res,
5083+    GError **error);
5084+
5085+gboolean _g_freedesktop_dbus_call_release_name_sync (
5086+    _GFreedesktopDBus *proxy,
5087+    const gchar *arg_name,
5088+    guint *out_value,
5089+    GCancellable *cancellable,
5090+    GError **error);
5091+
5092+void _g_freedesktop_dbus_call_start_service_by_name (
5093+    _GFreedesktopDBus *proxy,
5094+    const gchar *arg_name,
5095+    guint arg_flags,
5096+    GCancellable *cancellable,
5097+    GAsyncReadyCallback callback,
5098+    gpointer user_data);
5099+
5100+gboolean _g_freedesktop_dbus_call_start_service_by_name_finish (
5101+    _GFreedesktopDBus *proxy,
5102+    guint *out_value,
5103+    GAsyncResult *res,
5104+    GError **error);
5105+
5106+gboolean _g_freedesktop_dbus_call_start_service_by_name_sync (
5107+    _GFreedesktopDBus *proxy,
5108+    const gchar *arg_name,
5109+    guint arg_flags,
5110+    guint *out_value,
5111+    GCancellable *cancellable,
5112+    GError **error);
5113+
5114+void _g_freedesktop_dbus_call_name_has_owner (
5115+    _GFreedesktopDBus *proxy,
5116+    const gchar *arg_name,
5117+    GCancellable *cancellable,
5118+    GAsyncReadyCallback callback,
5119+    gpointer user_data);
5120+
5121+gboolean _g_freedesktop_dbus_call_name_has_owner_finish (
5122+    _GFreedesktopDBus *proxy,
5123+    gboolean *out_has_owner,
5124+    GAsyncResult *res,
5125+    GError **error);
5126+
5127+gboolean _g_freedesktop_dbus_call_name_has_owner_sync (
5128+    _GFreedesktopDBus *proxy,
5129+    const gchar *arg_name,
5130+    gboolean *out_has_owner,
5131+    GCancellable *cancellable,
5132+    GError **error);
5133+
5134+void _g_freedesktop_dbus_call_list_names (
5135+    _GFreedesktopDBus *proxy,
5136+    GCancellable *cancellable,
5137+    GAsyncReadyCallback callback,
5138+    gpointer user_data);
5139+
5140+gboolean _g_freedesktop_dbus_call_list_names_finish (
5141+    _GFreedesktopDBus *proxy,
5142+    gchar ***out_names,
5143+    GAsyncResult *res,
5144+    GError **error);
5145+
5146+gboolean _g_freedesktop_dbus_call_list_names_sync (
5147+    _GFreedesktopDBus *proxy,
5148+    gchar ***out_names,
5149+    GCancellable *cancellable,
5150+    GError **error);
5151+
5152+void _g_freedesktop_dbus_call_list_activatable_names (
5153+    _GFreedesktopDBus *proxy,
5154+    GCancellable *cancellable,
5155+    GAsyncReadyCallback callback,
5156+    gpointer user_data);
5157+
5158+gboolean _g_freedesktop_dbus_call_list_activatable_names_finish (
5159+    _GFreedesktopDBus *proxy,
5160+    gchar ***out_activatable_names,
5161+    GAsyncResult *res,
5162+    GError **error);
5163+
5164+gboolean _g_freedesktop_dbus_call_list_activatable_names_sync (
5165+    _GFreedesktopDBus *proxy,
5166+    gchar ***out_activatable_names,
5167+    GCancellable *cancellable,
5168+    GError **error);
5169+
5170+void _g_freedesktop_dbus_call_add_match (
5171+    _GFreedesktopDBus *proxy,
5172+    const gchar *arg_rule,
5173+    GCancellable *cancellable,
5174+    GAsyncReadyCallback callback,
5175+    gpointer user_data);
5176+
5177+gboolean _g_freedesktop_dbus_call_add_match_finish (
5178+    _GFreedesktopDBus *proxy,
5179+    GAsyncResult *res,
5180+    GError **error);
5181+
5182+gboolean _g_freedesktop_dbus_call_add_match_sync (
5183+    _GFreedesktopDBus *proxy,
5184+    const gchar *arg_rule,
5185+    GCancellable *cancellable,
5186+    GError **error);
5187+
5188+void _g_freedesktop_dbus_call_remove_match (
5189+    _GFreedesktopDBus *proxy,
5190+    const gchar *arg_rule,
5191+    GCancellable *cancellable,
5192+    GAsyncReadyCallback callback,
5193+    gpointer user_data);
5194+
5195+gboolean _g_freedesktop_dbus_call_remove_match_finish (
5196+    _GFreedesktopDBus *proxy,
5197+    GAsyncResult *res,
5198+    GError **error);
5199+
5200+gboolean _g_freedesktop_dbus_call_remove_match_sync (
5201+    _GFreedesktopDBus *proxy,
5202+    const gchar *arg_rule,
5203+    GCancellable *cancellable,
5204+    GError **error);
5205+
5206+void _g_freedesktop_dbus_call_get_name_owner (
5207+    _GFreedesktopDBus *proxy,
5208+    const gchar *arg_name,
5209+    GCancellable *cancellable,
5210+    GAsyncReadyCallback callback,
5211+    gpointer user_data);
5212+
5213+gboolean _g_freedesktop_dbus_call_get_name_owner_finish (
5214+    _GFreedesktopDBus *proxy,
5215+    gchar **out_unique_name,
5216+    GAsyncResult *res,
5217+    GError **error);
5218+
5219+gboolean _g_freedesktop_dbus_call_get_name_owner_sync (
5220+    _GFreedesktopDBus *proxy,
5221+    const gchar *arg_name,
5222+    gchar **out_unique_name,
5223+    GCancellable *cancellable,
5224+    GError **error);
5225+
5226+void _g_freedesktop_dbus_call_list_queued_owners (
5227+    _GFreedesktopDBus *proxy,
5228+    const gchar *arg_name,
5229+    GCancellable *cancellable,
5230+    GAsyncReadyCallback callback,
5231+    gpointer user_data);
5232+
5233+gboolean _g_freedesktop_dbus_call_list_queued_owners_finish (
5234+    _GFreedesktopDBus *proxy,
5235+    gchar ***out_queued_owners,
5236+    GAsyncResult *res,
5237+    GError **error);
5238+
5239+gboolean _g_freedesktop_dbus_call_list_queued_owners_sync (
5240+    _GFreedesktopDBus *proxy,
5241+    const gchar *arg_name,
5242+    gchar ***out_queued_owners,
5243+    GCancellable *cancellable,
5244+    GError **error);
5245+
5246+void _g_freedesktop_dbus_call_get_connection_unix_user (
5247+    _GFreedesktopDBus *proxy,
5248+    const gchar *arg_name,
5249+    GCancellable *cancellable,
5250+    GAsyncReadyCallback callback,
5251+    gpointer user_data);
5252+
5253+gboolean _g_freedesktop_dbus_call_get_connection_unix_user_finish (
5254+    _GFreedesktopDBus *proxy,
5255+    guint *out_uid,
5256+    GAsyncResult *res,
5257+    GError **error);
5258+
5259+gboolean _g_freedesktop_dbus_call_get_connection_unix_user_sync (
5260+    _GFreedesktopDBus *proxy,
5261+    const gchar *arg_name,
5262+    guint *out_uid,
5263+    GCancellable *cancellable,
5264+    GError **error);
5265+
5266+void _g_freedesktop_dbus_call_get_connection_unix_process_id (
5267+    _GFreedesktopDBus *proxy,
5268+    const gchar *arg_name,
5269+    GCancellable *cancellable,
5270+    GAsyncReadyCallback callback,
5271+    gpointer user_data);
5272+
5273+gboolean _g_freedesktop_dbus_call_get_connection_unix_process_id_finish (
5274+    _GFreedesktopDBus *proxy,
5275+    guint *out_pid,
5276+    GAsyncResult *res,
5277+    GError **error);
5278+
5279+gboolean _g_freedesktop_dbus_call_get_connection_unix_process_id_sync (
5280+    _GFreedesktopDBus *proxy,
5281+    const gchar *arg_name,
5282+    guint *out_pid,
5283+    GCancellable *cancellable,
5284+    GError **error);
5285+
5286+void _g_freedesktop_dbus_call_get_connection_selinux_security_context (
5287+    _GFreedesktopDBus *proxy,
5288+    const gchar *arg_name,
5289+    GCancellable *cancellable,
5290+    GAsyncReadyCallback callback,
5291+    gpointer user_data);
5292+
5293+gboolean _g_freedesktop_dbus_call_get_connection_selinux_security_context_finish (
5294+    _GFreedesktopDBus *proxy,
5295+    gchar **out_security_context,
5296+    GAsyncResult *res,
5297+    GError **error);
5298+
5299+gboolean _g_freedesktop_dbus_call_get_connection_selinux_security_context_sync (
5300+    _GFreedesktopDBus *proxy,
5301+    const gchar *arg_name,
5302+    gchar **out_security_context,
5303+    GCancellable *cancellable,
5304+    GError **error);
5305+
5306+void _g_freedesktop_dbus_call_update_activation_environment (
5307+    _GFreedesktopDBus *proxy,
5308+    GVariant *arg_environment,
5309+    GCancellable *cancellable,
5310+    GAsyncReadyCallback callback,
5311+    gpointer user_data);
5312+
5313+gboolean _g_freedesktop_dbus_call_update_activation_environment_finish (
5314+    _GFreedesktopDBus *proxy,
5315+    GAsyncResult *res,
5316+    GError **error);
5317+
5318+gboolean _g_freedesktop_dbus_call_update_activation_environment_sync (
5319+    _GFreedesktopDBus *proxy,
5320+    GVariant *arg_environment,
5321+    GCancellable *cancellable,
5322+    GError **error);
5323+
5324+void _g_freedesktop_dbus_call_reload_config (
5325+    _GFreedesktopDBus *proxy,
5326+    GCancellable *cancellable,
5327+    GAsyncReadyCallback callback,
5328+    gpointer user_data);
5329+
5330+gboolean _g_freedesktop_dbus_call_reload_config_finish (
5331+    _GFreedesktopDBus *proxy,
5332+    GAsyncResult *res,
5333+    GError **error);
5334+
5335+gboolean _g_freedesktop_dbus_call_reload_config_sync (
5336+    _GFreedesktopDBus *proxy,
5337+    GCancellable *cancellable,
5338+    GError **error);
5339+
5340+void _g_freedesktop_dbus_call_get_id (
5341+    _GFreedesktopDBus *proxy,
5342+    GCancellable *cancellable,
5343+    GAsyncReadyCallback callback,
5344+    gpointer user_data);
5345+
5346+gboolean _g_freedesktop_dbus_call_get_id_finish (
5347+    _GFreedesktopDBus *proxy,
5348+    gchar **out_unique_id,
5349+    GAsyncResult *res,
5350+    GError **error);
5351+
5352+gboolean _g_freedesktop_dbus_call_get_id_sync (
5353+    _GFreedesktopDBus *proxy,
5354+    gchar **out_unique_id,
5355+    GCancellable *cancellable,
5356+    GError **error);
5357+
5358+
5359+
5360+/* ---- */
5361+
5362+#define _G_TYPE_FREEDESKTOP_DBUS_PROXY (_g_freedesktop_dbus_proxy_get_type ())
5363+#define _G_FREEDESKTOP_DBUS_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), _G_TYPE_FREEDESKTOP_DBUS_PROXY, _GFreedesktopDBusProxy))
5364+#define _G_FREEDESKTOP_DBUS_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), _G_TYPE_FREEDESKTOP_DBUS_PROXY, _GFreedesktopDBusProxyClass))
5365+#define _G_FREEDESKTOP_DBUS_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), _G_TYPE_FREEDESKTOP_DBUS_PROXY, _GFreedesktopDBusProxyClass))
5366+#define _G_IS_FREEDESKTOP_DBUS_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), _G_TYPE_FREEDESKTOP_DBUS_PROXY))
5367+#define _G_IS_FREEDESKTOP_DBUS_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), _G_TYPE_FREEDESKTOP_DBUS_PROXY))
5368+
5369+typedef struct __GFreedesktopDBusProxy _GFreedesktopDBusProxy;
5370+typedef struct __GFreedesktopDBusProxyClass _GFreedesktopDBusProxyClass;
5371+typedef struct __GFreedesktopDBusProxyPrivate _GFreedesktopDBusProxyPrivate;
5372+
5373+struct __GFreedesktopDBusProxy
5374+{
5375+  /*< private >*/
5376+  GDBusProxy parent_instance;
5377+  _GFreedesktopDBusProxyPrivate *priv;
5378+};
5379+
5380+struct __GFreedesktopDBusProxyClass
5381+{
5382+  GDBusProxyClass parent_class;
5383+};
5384+
5385+GType _g_freedesktop_dbus_proxy_get_type (void) G_GNUC_CONST;
5386+
5387+#if GLIB_CHECK_VERSION(2, 44, 0)
5388+G_DEFINE_AUTOPTR_CLEANUP_FUNC (_GFreedesktopDBusProxy, g_object_unref)
5389+#endif
5390+
5391+void _g_freedesktop_dbus_proxy_new (
5392+    GDBusConnection     *connection,
5393+    GDBusProxyFlags      flags,
5394+    const gchar         *name,
5395+    const gchar         *object_path,
5396+    GCancellable        *cancellable,
5397+    GAsyncReadyCallback  callback,
5398+    gpointer             user_data);
5399+_GFreedesktopDBus *_g_freedesktop_dbus_proxy_new_finish (
5400+    GAsyncResult        *res,
5401+    GError             **error);
5402+_GFreedesktopDBus *_g_freedesktop_dbus_proxy_new_sync (
5403+    GDBusConnection     *connection,
5404+    GDBusProxyFlags      flags,
5405+    const gchar         *name,
5406+    const gchar         *object_path,
5407+    GCancellable        *cancellable,
5408+    GError             **error);
5409+
5410+void _g_freedesktop_dbus_proxy_new_for_bus (
5411+    GBusType             bus_type,
5412+    GDBusProxyFlags      flags,
5413+    const gchar         *name,
5414+    const gchar         *object_path,
5415+    GCancellable        *cancellable,
5416+    GAsyncReadyCallback  callback,
5417+    gpointer             user_data);
5418+_GFreedesktopDBus *_g_freedesktop_dbus_proxy_new_for_bus_finish (
5419+    GAsyncResult        *res,
5420+    GError             **error);
5421+_GFreedesktopDBus *_g_freedesktop_dbus_proxy_new_for_bus_sync (
5422+    GBusType             bus_type,
5423+    GDBusProxyFlags      flags,
5424+    const gchar         *name,
5425+    const gchar         *object_path,
5426+    GCancellable        *cancellable,
5427+    GError             **error);
5428+
5429+
5430+/* ---- */
5431+
5432+#define _G_TYPE_FREEDESKTOP_DBUS_SKELETON (_g_freedesktop_dbus_skeleton_get_type ())
5433+#define _G_FREEDESKTOP_DBUS_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), _G_TYPE_FREEDESKTOP_DBUS_SKELETON, _GFreedesktopDBusSkeleton))
5434+#define _G_FREEDESKTOP_DBUS_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), _G_TYPE_FREEDESKTOP_DBUS_SKELETON, _GFreedesktopDBusSkeletonClass))
5435+#define _G_FREEDESKTOP_DBUS_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), _G_TYPE_FREEDESKTOP_DBUS_SKELETON, _GFreedesktopDBusSkeletonClass))
5436+#define _G_IS_FREEDESKTOP_DBUS_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), _G_TYPE_FREEDESKTOP_DBUS_SKELETON))
5437+#define _G_IS_FREEDESKTOP_DBUS_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), _G_TYPE_FREEDESKTOP_DBUS_SKELETON))
5438+
5439+typedef struct __GFreedesktopDBusSkeleton _GFreedesktopDBusSkeleton;
5440+typedef struct __GFreedesktopDBusSkeletonClass _GFreedesktopDBusSkeletonClass;
5441+typedef struct __GFreedesktopDBusSkeletonPrivate _GFreedesktopDBusSkeletonPrivate;
5442+
5443+struct __GFreedesktopDBusSkeleton
5444+{
5445+  /*< private >*/
5446+  GDBusInterfaceSkeleton parent_instance;
5447+  _GFreedesktopDBusSkeletonPrivate *priv;
5448+};
5449+
5450+struct __GFreedesktopDBusSkeletonClass
5451+{
5452+  GDBusInterfaceSkeletonClass parent_class;
5453+};
5454+
5455+GType _g_freedesktop_dbus_skeleton_get_type (void) G_GNUC_CONST;
5456+
5457+#if GLIB_CHECK_VERSION(2, 44, 0)
5458+G_DEFINE_AUTOPTR_CLEANUP_FUNC (_GFreedesktopDBusSkeleton, g_object_unref)
5459+#endif
5460+
5461+_GFreedesktopDBus *_g_freedesktop_dbus_skeleton_new (void);
5462+
5463+
5464+G_END_DECLS
5465+
5466+#endif /* __GDBUS_DAEMON_GENERATED_H__ */
5467diff --git a/gio/gioenumtypes.c b/gio/gioenumtypes.c
5468new file mode 100644
5469index 0000000..0ccd900
5470--- /dev/null
5471+++ b/gio/gioenumtypes.c
5472@@ -0,0 +1,1834 @@
5473+
5474+/* This file is generated by glib-mkenums, do not modify it. This code is licensed under the same license as the containing project. Note that it links to GLib, so must comply with the LGPL linking clauses. */
5475+
5476+#include "config.h"
5477+#include "gioenumtypes.h"
5478+#include <gio.h>
5479+/* enumerations from "../gio/gioenums.h" */
5480+GType
5481+g_app_info_create_flags_get_type (void)
5482+{
5483+  static gsize static_g_define_type_id = 0;
5484+
5485+  if (g_once_init_enter (&static_g_define_type_id))
5486+    {
5487+      static const GFlagsValue values[] = {
5488+        { G_APP_INFO_CREATE_NONE, "G_APP_INFO_CREATE_NONE", "none" },
5489+        { G_APP_INFO_CREATE_NEEDS_TERMINAL, "G_APP_INFO_CREATE_NEEDS_TERMINAL", "needs-terminal" },
5490+        { G_APP_INFO_CREATE_SUPPORTS_URIS, "G_APP_INFO_CREATE_SUPPORTS_URIS", "supports-uris" },
5491+        { G_APP_INFO_CREATE_SUPPORTS_STARTUP_NOTIFICATION, "G_APP_INFO_CREATE_SUPPORTS_STARTUP_NOTIFICATION", "supports-startup-notification" },
5492+        { 0, NULL, NULL }
5493+      };
5494+      GType g_define_type_id =
5495+        g_flags_register_static (g_intern_static_string ("GAppInfoCreateFlags"), values);
5496+      g_once_init_leave (&static_g_define_type_id, g_define_type_id);
5497+    }
5498+
5499+  return static_g_define_type_id;
5500+}
5501+GType
5502+g_converter_flags_get_type (void)
5503+{
5504+  static gsize static_g_define_type_id = 0;
5505+
5506+  if (g_once_init_enter (&static_g_define_type_id))
5507+    {
5508+      static const GFlagsValue values[] = {
5509+        { G_CONVERTER_NO_FLAGS, "G_CONVERTER_NO_FLAGS", "none" },
5510+        { G_CONVERTER_INPUT_AT_END, "G_CONVERTER_INPUT_AT_END", "input-at-end" },
5511+        { G_CONVERTER_FLUSH, "G_CONVERTER_FLUSH", "flush" },
5512+        { 0, NULL, NULL }
5513+      };
5514+      GType g_define_type_id =
5515+        g_flags_register_static (g_intern_static_string ("GConverterFlags"), values);
5516+      g_once_init_leave (&static_g_define_type_id, g_define_type_id);
5517+    }
5518+
5519+  return static_g_define_type_id;
5520+}
5521+GType
5522+g_converter_result_get_type (void)
5523+{
5524+  static gsize static_g_define_type_id = 0;
5525+
5526+  if (g_once_init_enter (&static_g_define_type_id))
5527+    {
5528+      static const GEnumValue values[] = {
5529+        { G_CONVERTER_ERROR, "G_CONVERTER_ERROR", "error" },
5530+        { G_CONVERTER_CONVERTED, "G_CONVERTER_CONVERTED", "converted" },
5531+        { G_CONVERTER_FINISHED, "G_CONVERTER_FINISHED", "finished" },
5532+        { G_CONVERTER_FLUSHED, "G_CONVERTER_FLUSHED", "flushed" },
5533+        { 0, NULL, NULL }
5534+      };
5535+      GType g_define_type_id =
5536+        g_enum_register_static (g_intern_static_string ("GConverterResult"), values);
5537+      g_once_init_leave (&static_g_define_type_id, g_define_type_id);
5538+    }
5539+
5540+  return static_g_define_type_id;
5541+}
5542+GType
5543+g_data_stream_byte_order_get_type (void)
5544+{
5545+  static gsize static_g_define_type_id = 0;
5546+
5547+  if (g_once_init_enter (&static_g_define_type_id))
5548+    {
5549+      static const GEnumValue values[] = {
5550+        { G_DATA_STREAM_BYTE_ORDER_BIG_ENDIAN, "G_DATA_STREAM_BYTE_ORDER_BIG_ENDIAN", "big-endian" },
5551+        { G_DATA_STREAM_BYTE_ORDER_LITTLE_ENDIAN, "G_DATA_STREAM_BYTE_ORDER_LITTLE_ENDIAN", "little-endian" },
5552+        { G_DATA_STREAM_BYTE_ORDER_HOST_ENDIAN, "G_DATA_STREAM_BYTE_ORDER_HOST_ENDIAN", "host-endian" },
5553+        { 0, NULL, NULL }
5554+      };
5555+      GType g_define_type_id =
5556+        g_enum_register_static (g_intern_static_string ("GDataStreamByteOrder"), values);
5557+      g_once_init_leave (&static_g_define_type_id, g_define_type_id);
5558+    }
5559+
5560+  return static_g_define_type_id;
5561+}
5562+GType
5563+g_data_stream_newline_type_get_type (void)
5564+{
5565+  static gsize static_g_define_type_id = 0;
5566+
5567+  if (g_once_init_enter (&static_g_define_type_id))
5568+    {
5569+      static const GEnumValue values[] = {
5570+        { G_DATA_STREAM_NEWLINE_TYPE_LF, "G_DATA_STREAM_NEWLINE_TYPE_LF", "lf" },
5571+        { G_DATA_STREAM_NEWLINE_TYPE_CR, "G_DATA_STREAM_NEWLINE_TYPE_CR", "cr" },
5572+        { G_DATA_STREAM_NEWLINE_TYPE_CR_LF, "G_DATA_STREAM_NEWLINE_TYPE_CR_LF", "cr-lf" },
5573+        { G_DATA_STREAM_NEWLINE_TYPE_ANY, "G_DATA_STREAM_NEWLINE_TYPE_ANY", "any" },
5574+        { 0, NULL, NULL }
5575+      };
5576+      GType g_define_type_id =
5577+        g_enum_register_static (g_intern_static_string ("GDataStreamNewlineType"), values);
5578+      g_once_init_leave (&static_g_define_type_id, g_define_type_id);
5579+    }
5580+
5581+  return static_g_define_type_id;
5582+}
5583+GType
5584+g_file_attribute_type_get_type (void)
5585+{
5586+  static gsize static_g_define_type_id = 0;
5587+
5588+  if (g_once_init_enter (&static_g_define_type_id))
5589+    {
5590+      static const GEnumValue values[] = {
5591+        { G_FILE_ATTRIBUTE_TYPE_INVALID, "G_FILE_ATTRIBUTE_TYPE_INVALID", "invalid" },
5592+        { G_FILE_ATTRIBUTE_TYPE_STRING, "G_FILE_ATTRIBUTE_TYPE_STRING", "string" },
5593+        { G_FILE_ATTRIBUTE_TYPE_BYTE_STRING, "G_FILE_ATTRIBUTE_TYPE_BYTE_STRING", "byte-string" },
5594+        { G_FILE_ATTRIBUTE_TYPE_BOOLEAN, "G_FILE_ATTRIBUTE_TYPE_BOOLEAN", "boolean" },
5595+        { G_FILE_ATTRIBUTE_TYPE_UINT32, "G_FILE_ATTRIBUTE_TYPE_UINT32", "uint32" },
5596+        { G_FILE_ATTRIBUTE_TYPE_INT32, "G_FILE_ATTRIBUTE_TYPE_INT32", "int32" },
5597+        { G_FILE_ATTRIBUTE_TYPE_UINT64, "G_FILE_ATTRIBUTE_TYPE_UINT64", "uint64" },
5598+        { G_FILE_ATTRIBUTE_TYPE_INT64, "G_FILE_ATTRIBUTE_TYPE_INT64", "int64" },
5599+        { G_FILE_ATTRIBUTE_TYPE_OBJECT, "G_FILE_ATTRIBUTE_TYPE_OBJECT", "object" },
5600+        { G_FILE_ATTRIBUTE_TYPE_STRINGV, "G_FILE_ATTRIBUTE_TYPE_STRINGV", "stringv" },
5601+        { 0, NULL, NULL }
5602+      };
5603+      GType g_define_type_id =
5604+        g_enum_register_static (g_intern_static_string ("GFileAttributeType"), values);
5605+      g_once_init_leave (&static_g_define_type_id, g_define_type_id);
5606+    }
5607+
5608+  return static_g_define_type_id;
5609+}
5610+GType
5611+g_file_attribute_info_flags_get_type (void)
5612+{
5613+  static gsize static_g_define_type_id = 0;
5614+
5615+  if (g_once_init_enter (&static_g_define_type_id))
5616+    {
5617+      static const GFlagsValue values[] = {
5618+        { G_FILE_ATTRIBUTE_INFO_NONE, "G_FILE_ATTRIBUTE_INFO_NONE", "none" },
5619+        { G_FILE_ATTRIBUTE_INFO_COPY_WITH_FILE, "G_FILE_ATTRIBUTE_INFO_COPY_WITH_FILE", "copy-with-file" },
5620+        { G_FILE_ATTRIBUTE_INFO_COPY_WHEN_MOVED, "G_FILE_ATTRIBUTE_INFO_COPY_WHEN_MOVED", "copy-when-moved" },
5621+        { 0, NULL, NULL }
5622+      };
5623+      GType g_define_type_id =
5624+        g_flags_register_static (g_intern_static_string ("GFileAttributeInfoFlags"), values);
5625+      g_once_init_leave (&static_g_define_type_id, g_define_type_id);
5626+    }
5627+
5628+  return static_g_define_type_id;
5629+}
5630+GType
5631+g_file_attribute_status_get_type (void)
5632+{
5633+  static gsize static_g_define_type_id = 0;
5634+
5635+  if (g_once_init_enter (&static_g_define_type_id))
5636+    {
5637+      static const GEnumValue values[] = {
5638+        { G_FILE_ATTRIBUTE_STATUS_UNSET, "G_FILE_ATTRIBUTE_STATUS_UNSET", "unset" },
5639+        { G_FILE_ATTRIBUTE_STATUS_SET, "G_FILE_ATTRIBUTE_STATUS_SET", "set" },
5640+        { G_FILE_ATTRIBUTE_STATUS_ERROR_SETTING, "G_FILE_ATTRIBUTE_STATUS_ERROR_SETTING", "error-setting" },
5641+        { 0, NULL, NULL }
5642+      };
5643+      GType g_define_type_id =
5644+        g_enum_register_static (g_intern_static_string ("GFileAttributeStatus"), values);
5645+      g_once_init_leave (&static_g_define_type_id, g_define_type_id);
5646+    }
5647+
5648+  return static_g_define_type_id;
5649+}
5650+GType
5651+g_file_query_info_flags_get_type (void)
5652+{
5653+  static gsize static_g_define_type_id = 0;
5654+
5655+  if (g_once_init_enter (&static_g_define_type_id))
5656+    {
5657+      static const GFlagsValue values[] = {
5658+        { G_FILE_QUERY_INFO_NONE, "G_FILE_QUERY_INFO_NONE", "none" },
5659+        { G_FILE_QUERY_INFO_NOFOLLOW_SYMLINKS, "G_FILE_QUERY_INFO_NOFOLLOW_SYMLINKS", "nofollow-symlinks" },
5660+        { 0, NULL, NULL }
5661+      };
5662+      GType g_define_type_id =
5663+        g_flags_register_static (g_intern_static_string ("GFileQueryInfoFlags"), values);
5664+      g_once_init_leave (&static_g_define_type_id, g_define_type_id);
5665+    }
5666+
5667+  return static_g_define_type_id;
5668+}
5669+GType
5670+g_file_create_flags_get_type (void)
5671+{
5672+  static gsize static_g_define_type_id = 0;
5673+
5674+  if (g_once_init_enter (&static_g_define_type_id))
5675+    {
5676+      static const GFlagsValue values[] = {
5677+        { G_FILE_CREATE_NONE, "G_FILE_CREATE_NONE", "none" },
5678+        { G_FILE_CREATE_PRIVATE, "G_FILE_CREATE_PRIVATE", "private" },
5679+        { G_FILE_CREATE_REPLACE_DESTINATION, "G_FILE_CREATE_REPLACE_DESTINATION", "replace-destination" },
5680+        { 0, NULL, NULL }
5681+      };
5682+      GType g_define_type_id =
5683+        g_flags_register_static (g_intern_static_string ("GFileCreateFlags"), values);
5684+      g_once_init_leave (&static_g_define_type_id, g_define_type_id);
5685+    }
5686+
5687+  return static_g_define_type_id;
5688+}
5689+GType
5690+g_file_measure_flags_get_type (void)
5691+{
5692+  static gsize static_g_define_type_id = 0;
5693+
5694+  if (g_once_init_enter (&static_g_define_type_id))
5695+    {
5696+      static const GFlagsValue values[] = {
5697+        { G_FILE_MEASURE_NONE, "G_FILE_MEASURE_NONE", "none" },
5698+        { G_FILE_MEASURE_REPORT_ANY_ERROR, "G_FILE_MEASURE_REPORT_ANY_ERROR", "report-any-error" },
5699+        { G_FILE_MEASURE_APPARENT_SIZE, "G_FILE_MEASURE_APPARENT_SIZE", "apparent-size" },
5700+        { G_FILE_MEASURE_NO_XDEV, "G_FILE_MEASURE_NO_XDEV", "no-xdev" },
5701+        { 0, NULL, NULL }
5702+      };
5703+      GType g_define_type_id =
5704+        g_flags_register_static (g_intern_static_string ("GFileMeasureFlags"), values);
5705+      g_once_init_leave (&static_g_define_type_id, g_define_type_id);
5706+    }
5707+
5708+  return static_g_define_type_id;
5709+}
5710+GType
5711+g_mount_mount_flags_get_type (void)
5712+{
5713+  static gsize static_g_define_type_id = 0;
5714+
5715+  if (g_once_init_enter (&static_g_define_type_id))
5716+    {
5717+      static const GFlagsValue values[] = {
5718+        { G_MOUNT_MOUNT_NONE, "G_MOUNT_MOUNT_NONE", "none" },
5719+        { 0, NULL, NULL }
5720+      };
5721+      GType g_define_type_id =
5722+        g_flags_register_static (g_intern_static_string ("GMountMountFlags"), values);
5723+      g_once_init_leave (&static_g_define_type_id, g_define_type_id);
5724+    }
5725+
5726+  return static_g_define_type_id;
5727+}
5728+GType
5729+g_mount_unmount_flags_get_type (void)
5730+{
5731+  static gsize static_g_define_type_id = 0;
5732+
5733+  if (g_once_init_enter (&static_g_define_type_id))
5734+    {
5735+      static const GFlagsValue values[] = {
5736+        { G_MOUNT_UNMOUNT_NONE, "G_MOUNT_UNMOUNT_NONE", "none" },
5737+        { G_MOUNT_UNMOUNT_FORCE, "G_MOUNT_UNMOUNT_FORCE", "force" },
5738+        { 0, NULL, NULL }
5739+      };
5740+      GType g_define_type_id =
5741+        g_flags_register_static (g_intern_static_string ("GMountUnmountFlags"), values);
5742+      g_once_init_leave (&static_g_define_type_id, g_define_type_id);
5743+    }
5744+
5745+  return static_g_define_type_id;
5746+}
5747+GType
5748+g_drive_start_flags_get_type (void)
5749+{
5750+  static gsize static_g_define_type_id = 0;
5751+
5752+  if (g_once_init_enter (&static_g_define_type_id))
5753+    {
5754+      static const GFlagsValue values[] = {
5755+        { G_DRIVE_START_NONE, "G_DRIVE_START_NONE", "none" },
5756+        { 0, NULL, NULL }
5757+      };
5758+      GType g_define_type_id =
5759+        g_flags_register_static (g_intern_static_string ("GDriveStartFlags"), values);
5760+      g_once_init_leave (&static_g_define_type_id, g_define_type_id);
5761+    }
5762+
5763+  return static_g_define_type_id;
5764+}
5765+GType
5766+g_drive_start_stop_type_get_type (void)
5767+{
5768+  static gsize static_g_define_type_id = 0;
5769+
5770+  if (g_once_init_enter (&static_g_define_type_id))
5771+    {
5772+      static const GEnumValue values[] = {
5773+        { G_DRIVE_START_STOP_TYPE_UNKNOWN, "G_DRIVE_START_STOP_TYPE_UNKNOWN", "unknown" },
5774+        { G_DRIVE_START_STOP_TYPE_SHUTDOWN, "G_DRIVE_START_STOP_TYPE_SHUTDOWN", "shutdown" },
5775+        { G_DRIVE_START_STOP_TYPE_NETWORK, "G_DRIVE_START_STOP_TYPE_NETWORK", "network" },
5776+        { G_DRIVE_START_STOP_TYPE_MULTIDISK, "G_DRIVE_START_STOP_TYPE_MULTIDISK", "multidisk" },
5777+        { G_DRIVE_START_STOP_TYPE_PASSWORD, "G_DRIVE_START_STOP_TYPE_PASSWORD", "password" },
5778+        { 0, NULL, NULL }
5779+      };
5780+      GType g_define_type_id =
5781+        g_enum_register_static (g_intern_static_string ("GDriveStartStopType"), values);
5782+      g_once_init_leave (&static_g_define_type_id, g_define_type_id);
5783+    }
5784+
5785+  return static_g_define_type_id;
5786+}
5787+GType
5788+g_file_copy_flags_get_type (void)
5789+{
5790+  static gsize static_g_define_type_id = 0;
5791+
5792+  if (g_once_init_enter (&static_g_define_type_id))
5793+    {
5794+      static const GFlagsValue values[] = {
5795+        { G_FILE_COPY_NONE, "G_FILE_COPY_NONE", "none" },
5796+        { G_FILE_COPY_OVERWRITE, "G_FILE_COPY_OVERWRITE", "overwrite" },
5797+        { G_FILE_COPY_BACKUP, "G_FILE_COPY_BACKUP", "backup" },
5798+        { G_FILE_COPY_NOFOLLOW_SYMLINKS, "G_FILE_COPY_NOFOLLOW_SYMLINKS", "nofollow-symlinks" },
5799+        { G_FILE_COPY_ALL_METADATA, "G_FILE_COPY_ALL_METADATA", "all-metadata" },
5800+        { G_FILE_COPY_NO_FALLBACK_FOR_MOVE, "G_FILE_COPY_NO_FALLBACK_FOR_MOVE", "no-fallback-for-move" },
5801+        { G_FILE_COPY_TARGET_DEFAULT_PERMS, "G_FILE_COPY_TARGET_DEFAULT_PERMS", "target-default-perms" },
5802+        { 0, NULL, NULL }
5803+      };
5804+      GType g_define_type_id =
5805+        g_flags_register_static (g_intern_static_string ("GFileCopyFlags"), values);
5806+      g_once_init_leave (&static_g_define_type_id, g_define_type_id);
5807+    }
5808+
5809+  return static_g_define_type_id;
5810+}
5811+GType
5812+g_file_monitor_flags_get_type (void)
5813+{
5814+  static gsize static_g_define_type_id = 0;
5815+
5816+  if (g_once_init_enter (&static_g_define_type_id))
5817+    {
5818+      static const GFlagsValue values[] = {
5819+        { G_FILE_MONITOR_NONE, "G_FILE_MONITOR_NONE", "none" },
5820+        { G_FILE_MONITOR_WATCH_MOUNTS, "G_FILE_MONITOR_WATCH_MOUNTS", "watch-mounts" },
5821+        { G_FILE_MONITOR_SEND_MOVED, "G_FILE_MONITOR_SEND_MOVED", "send-moved" },
5822+        { G_FILE_MONITOR_WATCH_HARD_LINKS, "G_FILE_MONITOR_WATCH_HARD_LINKS", "watch-hard-links" },
5823+        { G_FILE_MONITOR_WATCH_MOVES, "G_FILE_MONITOR_WATCH_MOVES", "watch-moves" },
5824+        { 0, NULL, NULL }
5825+      };
5826+      GType g_define_type_id =
5827+        g_flags_register_static (g_intern_static_string ("GFileMonitorFlags"), values);
5828+      g_once_init_leave (&static_g_define_type_id, g_define_type_id);
5829+    }
5830+
5831+  return static_g_define_type_id;
5832+}
5833+GType
5834+g_file_type_get_type (void)
5835+{
5836+  static gsize static_g_define_type_id = 0;
5837+
5838+  if (g_once_init_enter (&static_g_define_type_id))
5839+    {
5840+      static const GEnumValue values[] = {
5841+        { G_FILE_TYPE_UNKNOWN, "G_FILE_TYPE_UNKNOWN", "unknown" },
5842+        { G_FILE_TYPE_REGULAR, "G_FILE_TYPE_REGULAR", "regular" },
5843+        { G_FILE_TYPE_DIRECTORY, "G_FILE_TYPE_DIRECTORY", "directory" },
5844+        { G_FILE_TYPE_SYMBOLIC_LINK, "G_FILE_TYPE_SYMBOLIC_LINK", "symbolic-link" },
5845+        { G_FILE_TYPE_SPECIAL, "G_FILE_TYPE_SPECIAL", "special" },
5846+        { G_FILE_TYPE_SHORTCUT, "G_FILE_TYPE_SHORTCUT", "shortcut" },
5847+        { G_FILE_TYPE_MOUNTABLE, "G_FILE_TYPE_MOUNTABLE", "mountable" },
5848+        { 0, NULL, NULL }
5849+      };
5850+      GType g_define_type_id =
5851+        g_enum_register_static (g_intern_static_string ("GFileType"), values);
5852+      g_once_init_leave (&static_g_define_type_id, g_define_type_id);
5853+    }
5854+
5855+  return static_g_define_type_id;
5856+}
5857+GType
5858+g_filesystem_preview_type_get_type (void)
5859+{
5860+  static gsize static_g_define_type_id = 0;
5861+
5862+  if (g_once_init_enter (&static_g_define_type_id))
5863+    {
5864+      static const GEnumValue values[] = {
5865+        { G_FILESYSTEM_PREVIEW_TYPE_IF_ALWAYS, "G_FILESYSTEM_PREVIEW_TYPE_IF_ALWAYS", "if-always" },
5866+        { G_FILESYSTEM_PREVIEW_TYPE_IF_LOCAL, "G_FILESYSTEM_PREVIEW_TYPE_IF_LOCAL", "if-local" },
5867+        { G_FILESYSTEM_PREVIEW_TYPE_NEVER, "G_FILESYSTEM_PREVIEW_TYPE_NEVER", "never" },
5868+        { 0, NULL, NULL }
5869+      };
5870+      GType g_define_type_id =
5871+        g_enum_register_static (g_intern_static_string ("GFilesystemPreviewType"), values);
5872+      g_once_init_leave (&static_g_define_type_id, g_define_type_id);
5873+    }
5874+
5875+  return static_g_define_type_id;
5876+}
5877+GType
5878+g_file_monitor_event_get_type (void)
5879+{
5880+  static gsize static_g_define_type_id = 0;
5881+
5882+  if (g_once_init_enter (&static_g_define_type_id))
5883+    {
5884+      static const GEnumValue values[] = {
5885+        { G_FILE_MONITOR_EVENT_CHANGED, "G_FILE_MONITOR_EVENT_CHANGED", "changed" },
5886+        { G_FILE_MONITOR_EVENT_CHANGES_DONE_HINT, "G_FILE_MONITOR_EVENT_CHANGES_DONE_HINT", "changes-done-hint" },
5887+        { G_FILE_MONITOR_EVENT_DELETED, "G_FILE_MONITOR_EVENT_DELETED", "deleted" },
5888+        { G_FILE_MONITOR_EVENT_CREATED, "G_FILE_MONITOR_EVENT_CREATED", "created" },
5889+        { G_FILE_MONITOR_EVENT_ATTRIBUTE_CHANGED, "G_FILE_MONITOR_EVENT_ATTRIBUTE_CHANGED", "attribute-changed" },
5890+        { G_FILE_MONITOR_EVENT_PRE_UNMOUNT, "G_FILE_MONITOR_EVENT_PRE_UNMOUNT", "pre-unmount" },
5891+        { G_FILE_MONITOR_EVENT_UNMOUNTED, "G_FILE_MONITOR_EVENT_UNMOUNTED", "unmounted" },
5892+        { G_FILE_MONITOR_EVENT_MOVED, "G_FILE_MONITOR_EVENT_MOVED", "moved" },
5893+        { G_FILE_MONITOR_EVENT_RENAMED, "G_FILE_MONITOR_EVENT_RENAMED", "renamed" },
5894+        { G_FILE_MONITOR_EVENT_MOVED_IN, "G_FILE_MONITOR_EVENT_MOVED_IN", "moved-in" },
5895+        { G_FILE_MONITOR_EVENT_MOVED_OUT, "G_FILE_MONITOR_EVENT_MOVED_OUT", "moved-out" },
5896+        { 0, NULL, NULL }
5897+      };
5898+      GType g_define_type_id =
5899+        g_enum_register_static (g_intern_static_string ("GFileMonitorEvent"), values);
5900+      g_once_init_leave (&static_g_define_type_id, g_define_type_id);
5901+    }
5902+
5903+  return static_g_define_type_id;
5904+}
5905+GType
5906+g_io_error_enum_get_type (void)
5907+{
5908+  static gsize static_g_define_type_id = 0;
5909+
5910+  if (g_once_init_enter (&static_g_define_type_id))
5911+    {
5912+      static const GEnumValue values[] = {
5913+        { G_IO_ERROR_FAILED, "G_IO_ERROR_FAILED", "failed" },
5914+        { G_IO_ERROR_NOT_FOUND, "G_IO_ERROR_NOT_FOUND", "not-found" },
5915+        { G_IO_ERROR_EXISTS, "G_IO_ERROR_EXISTS", "exists" },
5916+        { G_IO_ERROR_IS_DIRECTORY, "G_IO_ERROR_IS_DIRECTORY", "is-directory" },
5917+        { G_IO_ERROR_NOT_DIRECTORY, "G_IO_ERROR_NOT_DIRECTORY", "not-directory" },
5918+        { G_IO_ERROR_NOT_EMPTY, "G_IO_ERROR_NOT_EMPTY", "not-empty" },
5919+        { G_IO_ERROR_NOT_REGULAR_FILE, "G_IO_ERROR_NOT_REGULAR_FILE", "not-regular-file" },
5920+        { G_IO_ERROR_NOT_SYMBOLIC_LINK, "G_IO_ERROR_NOT_SYMBOLIC_LINK", "not-symbolic-link" },
5921+        { G_IO_ERROR_NOT_MOUNTABLE_FILE, "G_IO_ERROR_NOT_MOUNTABLE_FILE", "not-mountable-file" },
5922+        { G_IO_ERROR_FILENAME_TOO_LONG, "G_IO_ERROR_FILENAME_TOO_LONG", "filename-too-long" },
5923+        { G_IO_ERROR_INVALID_FILENAME, "G_IO_ERROR_INVALID_FILENAME", "invalid-filename" },
5924+        { G_IO_ERROR_TOO_MANY_LINKS, "G_IO_ERROR_TOO_MANY_LINKS", "too-many-links" },
5925+        { G_IO_ERROR_NO_SPACE, "G_IO_ERROR_NO_SPACE", "no-space" },
5926+        { G_IO_ERROR_INVALID_ARGUMENT, "G_IO_ERROR_INVALID_ARGUMENT", "invalid-argument" },
5927+        { G_IO_ERROR_PERMISSION_DENIED, "G_IO_ERROR_PERMISSION_DENIED", "permission-denied" },
5928+        { G_IO_ERROR_NOT_SUPPORTED, "G_IO_ERROR_NOT_SUPPORTED", "not-supported" },
5929+        { G_IO_ERROR_NOT_MOUNTED, "G_IO_ERROR_NOT_MOUNTED", "not-mounted" },
5930+        { G_IO_ERROR_ALREADY_MOUNTED, "G_IO_ERROR_ALREADY_MOUNTED", "already-mounted" },
5931+        { G_IO_ERROR_CLOSED, "G_IO_ERROR_CLOSED", "closed" },
5932+        { G_IO_ERROR_CANCELLED, "G_IO_ERROR_CANCELLED", "cancelled" },
5933+        { G_IO_ERROR_PENDING, "G_IO_ERROR_PENDING", "pending" },
5934+        { G_IO_ERROR_READ_ONLY, "G_IO_ERROR_READ_ONLY", "read-only" },
5935+        { G_IO_ERROR_CANT_CREATE_BACKUP, "G_IO_ERROR_CANT_CREATE_BACKUP", "cant-create-backup" },
5936+        { G_IO_ERROR_WRONG_ETAG, "G_IO_ERROR_WRONG_ETAG", "wrong-etag" },
5937+        { G_IO_ERROR_TIMED_OUT, "G_IO_ERROR_TIMED_OUT", "timed-out" },
5938+        { G_IO_ERROR_WOULD_RECURSE, "G_IO_ERROR_WOULD_RECURSE", "would-recurse" },
5939+        { G_IO_ERROR_BUSY, "G_IO_ERROR_BUSY", "busy" },
5940+        { G_IO_ERROR_WOULD_BLOCK, "G_IO_ERROR_WOULD_BLOCK", "would-block" },
5941+        { G_IO_ERROR_HOST_NOT_FOUND, "G_IO_ERROR_HOST_NOT_FOUND", "host-not-found" },
5942+        { G_IO_ERROR_WOULD_MERGE, "G_IO_ERROR_WOULD_MERGE", "would-merge" },
5943+        { G_IO_ERROR_FAILED_HANDLED, "G_IO_ERROR_FAILED_HANDLED", "failed-handled" },
5944+        { G_IO_ERROR_TOO_MANY_OPEN_FILES, "G_IO_ERROR_TOO_MANY_OPEN_FILES", "too-many-open-files" },
5945+        { G_IO_ERROR_NOT_INITIALIZED, "G_IO_ERROR_NOT_INITIALIZED", "not-initialized" },
5946+        { G_IO_ERROR_ADDRESS_IN_USE, "G_IO_ERROR_ADDRESS_IN_USE", "address-in-use" },
5947+        { G_IO_ERROR_PARTIAL_INPUT, "G_IO_ERROR_PARTIAL_INPUT", "partial-input" },
5948+        { G_IO_ERROR_INVALID_DATA, "G_IO_ERROR_INVALID_DATA", "invalid-data" },
5949+        { G_IO_ERROR_DBUS_ERROR, "G_IO_ERROR_DBUS_ERROR", "dbus-error" },
5950+        { G_IO_ERROR_HOST_UNREACHABLE, "G_IO_ERROR_HOST_UNREACHABLE", "host-unreachable" },
5951+        { G_IO_ERROR_NETWORK_UNREACHABLE, "G_IO_ERROR_NETWORK_UNREACHABLE", "network-unreachable" },
5952+        { G_IO_ERROR_CONNECTION_REFUSED, "G_IO_ERROR_CONNECTION_REFUSED", "connection-refused" },
5953+        { G_IO_ERROR_PROXY_FAILED, "G_IO_ERROR_PROXY_FAILED", "proxy-failed" },
5954+        { G_IO_ERROR_PROXY_AUTH_FAILED, "G_IO_ERROR_PROXY_AUTH_FAILED", "proxy-auth-failed" },
5955+        { G_IO_ERROR_PROXY_NEED_AUTH, "G_IO_ERROR_PROXY_NEED_AUTH", "proxy-need-auth" },
5956+        { G_IO_ERROR_PROXY_NOT_ALLOWED, "G_IO_ERROR_PROXY_NOT_ALLOWED", "proxy-not-allowed" },
5957+        { G_IO_ERROR_BROKEN_PIPE, "G_IO_ERROR_BROKEN_PIPE", "broken-pipe" },
5958+        { G_IO_ERROR_CONNECTION_CLOSED, "G_IO_ERROR_CONNECTION_CLOSED", "connection-closed" },
5959+        { G_IO_ERROR_NOT_CONNECTED, "G_IO_ERROR_NOT_CONNECTED", "not-connected" },
5960+        { G_IO_ERROR_MESSAGE_TOO_LARGE, "G_IO_ERROR_MESSAGE_TOO_LARGE", "message-too-large" },
5961+        { 0, NULL, NULL }
5962+      };
5963+      GType g_define_type_id =
5964+        g_enum_register_static (g_intern_static_string ("GIOErrorEnum"), values);
5965+      g_once_init_leave (&static_g_define_type_id, g_define_type_id);
5966+    }
5967+
5968+  return static_g_define_type_id;
5969+}
5970+GType
5971+g_ask_password_flags_get_type (void)
5972+{
5973+  static gsize static_g_define_type_id = 0;
5974+
5975+  if (g_once_init_enter (&static_g_define_type_id))
5976+    {
5977+      static const GFlagsValue values[] = {
5978+        { G_ASK_PASSWORD_NEED_PASSWORD, "G_ASK_PASSWORD_NEED_PASSWORD", "need-password" },
5979+        { G_ASK_PASSWORD_NEED_USERNAME, "G_ASK_PASSWORD_NEED_USERNAME", "need-username" },
5980+        { G_ASK_PASSWORD_NEED_DOMAIN, "G_ASK_PASSWORD_NEED_DOMAIN", "need-domain" },
5981+        { G_ASK_PASSWORD_SAVING_SUPPORTED, "G_ASK_PASSWORD_SAVING_SUPPORTED", "saving-supported" },
5982+        { G_ASK_PASSWORD_ANONYMOUS_SUPPORTED, "G_ASK_PASSWORD_ANONYMOUS_SUPPORTED", "anonymous-supported" },
5983+        { G_ASK_PASSWORD_TCRYPT, "G_ASK_PASSWORD_TCRYPT", "tcrypt" },
5984+        { 0, NULL, NULL }
5985+      };
5986+      GType g_define_type_id =
5987+        g_flags_register_static (g_intern_static_string ("GAskPasswordFlags"), values);
5988+      g_once_init_leave (&static_g_define_type_id, g_define_type_id);
5989+    }
5990+
5991+  return static_g_define_type_id;
5992+}
5993+GType
5994+g_password_save_get_type (void)
5995+{
5996+  static gsize static_g_define_type_id = 0;
5997+
5998+  if (g_once_init_enter (&static_g_define_type_id))
5999+    {
6000+      static const GEnumValue values[] = {
6001+        { G_PASSWORD_SAVE_NEVER, "G_PASSWORD_SAVE_NEVER", "never" },
6002+        { G_PASSWORD_SAVE_FOR_SESSION, "G_PASSWORD_SAVE_FOR_SESSION", "for-session" },
6003+        { G_PASSWORD_SAVE_PERMANENTLY, "G_PASSWORD_SAVE_PERMANENTLY", "permanently" },
6004+        { 0, NULL, NULL }
6005+      };
6006+      GType g_define_type_id =
6007+        g_enum_register_static (g_intern_static_string ("GPasswordSave"), values);
6008+      g_once_init_leave (&static_g_define_type_id, g_define_type_id);
6009+    }
6010+
6011+  return static_g_define_type_id;
6012+}
6013+GType
6014+g_mount_operation_result_get_type (void)
6015+{
6016+  static gsize static_g_define_type_id = 0;
6017+
6018+  if (g_once_init_enter (&static_g_define_type_id))
6019+    {
6020+      static const GEnumValue values[] = {
6021+        { G_MOUNT_OPERATION_HANDLED, "G_MOUNT_OPERATION_HANDLED", "handled" },
6022+        { G_MOUNT_OPERATION_ABORTED, "G_MOUNT_OPERATION_ABORTED", "aborted" },
6023+        { G_MOUNT_OPERATION_UNHANDLED, "G_MOUNT_OPERATION_UNHANDLED", "unhandled" },
6024+        { 0, NULL, NULL }
6025+      };
6026+      GType g_define_type_id =
6027+        g_enum_register_static (g_intern_static_string ("GMountOperationResult"), values);
6028+      g_once_init_leave (&static_g_define_type_id, g_define_type_id);
6029+    }
6030+
6031+  return static_g_define_type_id;
6032+}
6033+GType
6034+g_output_stream_splice_flags_get_type (void)
6035+{
6036+  static gsize static_g_define_type_id = 0;
6037+
6038+  if (g_once_init_enter (&static_g_define_type_id))
6039+    {
6040+      static const GFlagsValue values[] = {
6041+        { G_OUTPUT_STREAM_SPLICE_NONE, "G_OUTPUT_STREAM_SPLICE_NONE", "none" },
6042+        { G_OUTPUT_STREAM_SPLICE_CLOSE_SOURCE, "G_OUTPUT_STREAM_SPLICE_CLOSE_SOURCE", "close-source" },
6043+        { G_OUTPUT_STREAM_SPLICE_CLOSE_TARGET, "G_OUTPUT_STREAM_SPLICE_CLOSE_TARGET", "close-target" },
6044+        { 0, NULL, NULL }
6045+      };
6046+      GType g_define_type_id =
6047+        g_flags_register_static (g_intern_static_string ("GOutputStreamSpliceFlags"), values);
6048+      g_once_init_leave (&static_g_define_type_id, g_define_type_id);
6049+    }
6050+
6051+  return static_g_define_type_id;
6052+}
6053+GType
6054+g_io_stream_splice_flags_get_type (void)
6055+{
6056+  static gsize static_g_define_type_id = 0;
6057+
6058+  if (g_once_init_enter (&static_g_define_type_id))
6059+    {
6060+      static const GFlagsValue values[] = {
6061+        { G_IO_STREAM_SPLICE_NONE, "G_IO_STREAM_SPLICE_NONE", "none" },
6062+        { G_IO_STREAM_SPLICE_CLOSE_STREAM1, "G_IO_STREAM_SPLICE_CLOSE_STREAM1", "close-stream1" },
6063+        { G_IO_STREAM_SPLICE_CLOSE_STREAM2, "G_IO_STREAM_SPLICE_CLOSE_STREAM2", "close-stream2" },
6064+        { G_IO_STREAM_SPLICE_WAIT_FOR_BOTH, "G_IO_STREAM_SPLICE_WAIT_FOR_BOTH", "wait-for-both" },
6065+        { 0, NULL, NULL }
6066+      };
6067+      GType g_define_type_id =
6068+        g_flags_register_static (g_intern_static_string ("GIOStreamSpliceFlags"), values);
6069+      g_once_init_leave (&static_g_define_type_id, g_define_type_id);
6070+    }
6071+
6072+  return static_g_define_type_id;
6073+}
6074+GType
6075+g_emblem_origin_get_type (void)
6076+{
6077+  static gsize static_g_define_type_id = 0;
6078+
6079+  if (g_once_init_enter (&static_g_define_type_id))
6080+    {
6081+      static const GEnumValue values[] = {
6082+        { G_EMBLEM_ORIGIN_UNKNOWN, "G_EMBLEM_ORIGIN_UNKNOWN", "unknown" },
6083+        { G_EMBLEM_ORIGIN_DEVICE, "G_EMBLEM_ORIGIN_DEVICE", "device" },
6084+        { G_EMBLEM_ORIGIN_LIVEMETADATA, "G_EMBLEM_ORIGIN_LIVEMETADATA", "livemetadata" },
6085+        { G_EMBLEM_ORIGIN_TAG, "G_EMBLEM_ORIGIN_TAG", "tag" },
6086+        { 0, NULL, NULL }
6087+      };
6088+      GType g_define_type_id =
6089+        g_enum_register_static (g_intern_static_string ("GEmblemOrigin"), values);
6090+      g_once_init_leave (&static_g_define_type_id, g_define_type_id);
6091+    }
6092+
6093+  return static_g_define_type_id;
6094+}
6095+GType
6096+g_resolver_error_get_type (void)
6097+{
6098+  static gsize static_g_define_type_id = 0;
6099+
6100+  if (g_once_init_enter (&static_g_define_type_id))
6101+    {
6102+      static const GEnumValue values[] = {
6103+        { G_RESOLVER_ERROR_NOT_FOUND, "G_RESOLVER_ERROR_NOT_FOUND", "not-found" },
6104+        { G_RESOLVER_ERROR_TEMPORARY_FAILURE, "G_RESOLVER_ERROR_TEMPORARY_FAILURE", "temporary-failure" },
6105+        { G_RESOLVER_ERROR_INTERNAL, "G_RESOLVER_ERROR_INTERNAL", "internal" },
6106+        { 0, NULL, NULL }
6107+      };
6108+      GType g_define_type_id =
6109+        g_enum_register_static (g_intern_static_string ("GResolverError"), values);
6110+      g_once_init_leave (&static_g_define_type_id, g_define_type_id);
6111+    }
6112+
6113+  return static_g_define_type_id;
6114+}
6115+GType
6116+g_resolver_record_type_get_type (void)
6117+{
6118+  static gsize static_g_define_type_id = 0;
6119+
6120+  if (g_once_init_enter (&static_g_define_type_id))
6121+    {
6122+      static const GEnumValue values[] = {
6123+        { G_RESOLVER_RECORD_SRV, "G_RESOLVER_RECORD_SRV", "srv" },
6124+        { G_RESOLVER_RECORD_MX, "G_RESOLVER_RECORD_MX", "mx" },
6125+        { G_RESOLVER_RECORD_TXT, "G_RESOLVER_RECORD_TXT", "txt" },
6126+        { G_RESOLVER_RECORD_SOA, "G_RESOLVER_RECORD_SOA", "soa" },
6127+        { G_RESOLVER_RECORD_NS, "G_RESOLVER_RECORD_NS", "ns" },
6128+        { 0, NULL, NULL }
6129+      };
6130+      GType g_define_type_id =
6131+        g_enum_register_static (g_intern_static_string ("GResolverRecordType"), values);
6132+      g_once_init_leave (&static_g_define_type_id, g_define_type_id);
6133+    }
6134+
6135+  return static_g_define_type_id;
6136+}
6137+GType
6138+g_resource_error_get_type (void)
6139+{
6140+  static gsize static_g_define_type_id = 0;
6141+
6142+  if (g_once_init_enter (&static_g_define_type_id))
6143+    {
6144+      static const GEnumValue values[] = {
6145+        { G_RESOURCE_ERROR_NOT_FOUND, "G_RESOURCE_ERROR_NOT_FOUND", "not-found" },
6146+        { G_RESOURCE_ERROR_INTERNAL, "G_RESOURCE_ERROR_INTERNAL", "internal" },
6147+        { 0, NULL, NULL }
6148+      };
6149+      GType g_define_type_id =
6150+        g_enum_register_static (g_intern_static_string ("GResourceError"), values);
6151+      g_once_init_leave (&static_g_define_type_id, g_define_type_id);
6152+    }
6153+
6154+  return static_g_define_type_id;
6155+}
6156+GType
6157+g_resource_flags_get_type (void)
6158+{
6159+  static gsize static_g_define_type_id = 0;
6160+
6161+  if (g_once_init_enter (&static_g_define_type_id))
6162+    {
6163+      static const GFlagsValue values[] = {
6164+        { G_RESOURCE_FLAGS_NONE, "G_RESOURCE_FLAGS_NONE", "none" },
6165+        { G_RESOURCE_FLAGS_COMPRESSED, "G_RESOURCE_FLAGS_COMPRESSED", "compressed" },
6166+        { 0, NULL, NULL }
6167+      };
6168+      GType g_define_type_id =
6169+        g_flags_register_static (g_intern_static_string ("GResourceFlags"), values);
6170+      g_once_init_leave (&static_g_define_type_id, g_define_type_id);
6171+    }
6172+
6173+  return static_g_define_type_id;
6174+}
6175+GType
6176+g_resource_lookup_flags_get_type (void)
6177+{
6178+  static gsize static_g_define_type_id = 0;
6179+
6180+  if (g_once_init_enter (&static_g_define_type_id))
6181+    {
6182+      static const GFlagsValue values[] = {
6183+        { G_RESOURCE_LOOKUP_FLAGS_NONE, "G_RESOURCE_LOOKUP_FLAGS_NONE", "none" },
6184+        { 0, NULL, NULL }
6185+      };
6186+      GType g_define_type_id =
6187+        g_flags_register_static (g_intern_static_string ("GResourceLookupFlags"), values);
6188+      g_once_init_leave (&static_g_define_type_id, g_define_type_id);
6189+    }
6190+
6191+  return static_g_define_type_id;
6192+}
6193+GType
6194+g_socket_family_get_type (void)
6195+{
6196+  static gsize static_g_define_type_id = 0;
6197+
6198+  if (g_once_init_enter (&static_g_define_type_id))
6199+    {
6200+      static const GEnumValue values[] = {
6201+        { G_SOCKET_FAMILY_INVALID, "G_SOCKET_FAMILY_INVALID", "invalid" },
6202+        { G_SOCKET_FAMILY_UNIX, "G_SOCKET_FAMILY_UNIX", "unix" },
6203+        { G_SOCKET_FAMILY_IPV4, "G_SOCKET_FAMILY_IPV4", "ipv4" },
6204+        { G_SOCKET_FAMILY_IPV6, "G_SOCKET_FAMILY_IPV6", "ipv6" },
6205+        { 0, NULL, NULL }
6206+      };
6207+      GType g_define_type_id =
6208+        g_enum_register_static (g_intern_static_string ("GSocketFamily"), values);
6209+      g_once_init_leave (&static_g_define_type_id, g_define_type_id);
6210+    }
6211+
6212+  return static_g_define_type_id;
6213+}
6214+GType
6215+g_socket_type_get_type (void)
6216+{
6217+  static gsize static_g_define_type_id = 0;
6218+
6219+  if (g_once_init_enter (&static_g_define_type_id))
6220+    {
6221+      static const GEnumValue values[] = {
6222+        { G_SOCKET_TYPE_INVALID, "G_SOCKET_TYPE_INVALID", "invalid" },
6223+        { G_SOCKET_TYPE_STREAM, "G_SOCKET_TYPE_STREAM", "stream" },
6224+        { G_SOCKET_TYPE_DATAGRAM, "G_SOCKET_TYPE_DATAGRAM", "datagram" },
6225+        { G_SOCKET_TYPE_SEQPACKET, "G_SOCKET_TYPE_SEQPACKET", "seqpacket" },
6226+        { 0, NULL, NULL }
6227+      };
6228+      GType g_define_type_id =
6229+        g_enum_register_static (g_intern_static_string ("GSocketType"), values);
6230+      g_once_init_leave (&static_g_define_type_id, g_define_type_id);
6231+    }
6232+
6233+  return static_g_define_type_id;
6234+}
6235+GType
6236+g_socket_msg_flags_get_type (void)
6237+{
6238+  static gsize static_g_define_type_id = 0;
6239+
6240+  if (g_once_init_enter (&static_g_define_type_id))
6241+    {
6242+      static const GFlagsValue values[] = {
6243+        { G_SOCKET_MSG_NONE, "G_SOCKET_MSG_NONE", "none" },
6244+        { G_SOCKET_MSG_OOB, "G_SOCKET_MSG_OOB", "oob" },
6245+        { G_SOCKET_MSG_PEEK, "G_SOCKET_MSG_PEEK", "peek" },
6246+        { G_SOCKET_MSG_DONTROUTE, "G_SOCKET_MSG_DONTROUTE", "dontroute" },
6247+        { 0, NULL, NULL }
6248+      };
6249+      GType g_define_type_id =
6250+        g_flags_register_static (g_intern_static_string ("GSocketMsgFlags"), values);
6251+      g_once_init_leave (&static_g_define_type_id, g_define_type_id);
6252+    }
6253+
6254+  return static_g_define_type_id;
6255+}
6256+GType
6257+g_socket_protocol_get_type (void)
6258+{
6259+  static gsize static_g_define_type_id = 0;
6260+
6261+  if (g_once_init_enter (&static_g_define_type_id))
6262+    {
6263+      static const GEnumValue values[] = {
6264+        { G_SOCKET_PROTOCOL_UNKNOWN, "G_SOCKET_PROTOCOL_UNKNOWN", "unknown" },
6265+        { G_SOCKET_PROTOCOL_DEFAULT, "G_SOCKET_PROTOCOL_DEFAULT", "default" },
6266+        { G_SOCKET_PROTOCOL_TCP, "G_SOCKET_PROTOCOL_TCP", "tcp" },
6267+        { G_SOCKET_PROTOCOL_UDP, "G_SOCKET_PROTOCOL_UDP", "udp" },
6268+        { G_SOCKET_PROTOCOL_SCTP, "G_SOCKET_PROTOCOL_SCTP", "sctp" },
6269+        { 0, NULL, NULL }
6270+      };
6271+      GType g_define_type_id =
6272+        g_enum_register_static (g_intern_static_string ("GSocketProtocol"), values);
6273+      g_once_init_leave (&static_g_define_type_id, g_define_type_id);
6274+    }
6275+
6276+  return static_g_define_type_id;
6277+}
6278+GType
6279+g_zlib_compressor_format_get_type (void)
6280+{
6281+  static gsize static_g_define_type_id = 0;
6282+
6283+  if (g_once_init_enter (&static_g_define_type_id))
6284+    {
6285+      static const GEnumValue values[] = {
6286+        { G_ZLIB_COMPRESSOR_FORMAT_ZLIB, "G_ZLIB_COMPRESSOR_FORMAT_ZLIB", "zlib" },
6287+        { G_ZLIB_COMPRESSOR_FORMAT_GZIP, "G_ZLIB_COMPRESSOR_FORMAT_GZIP", "gzip" },
6288+        { G_ZLIB_COMPRESSOR_FORMAT_RAW, "G_ZLIB_COMPRESSOR_FORMAT_RAW", "raw" },
6289+        { 0, NULL, NULL }
6290+      };
6291+      GType g_define_type_id =
6292+        g_enum_register_static (g_intern_static_string ("GZlibCompressorFormat"), values);
6293+      g_once_init_leave (&static_g_define_type_id, g_define_type_id);
6294+    }
6295+
6296+  return static_g_define_type_id;
6297+}
6298+GType
6299+g_unix_socket_address_type_get_type (void)
6300+{
6301+  static gsize static_g_define_type_id = 0;
6302+
6303+  if (g_once_init_enter (&static_g_define_type_id))
6304+    {
6305+      static const GEnumValue values[] = {
6306+        { G_UNIX_SOCKET_ADDRESS_INVALID, "G_UNIX_SOCKET_ADDRESS_INVALID", "invalid" },
6307+        { G_UNIX_SOCKET_ADDRESS_ANONYMOUS, "G_UNIX_SOCKET_ADDRESS_ANONYMOUS", "anonymous" },
6308+        { G_UNIX_SOCKET_ADDRESS_PATH, "G_UNIX_SOCKET_ADDRESS_PATH", "path" },
6309+        { G_UNIX_SOCKET_ADDRESS_ABSTRACT, "G_UNIX_SOCKET_ADDRESS_ABSTRACT", "abstract" },
6310+        { G_UNIX_SOCKET_ADDRESS_ABSTRACT_PADDED, "G_UNIX_SOCKET_ADDRESS_ABSTRACT_PADDED", "abstract-padded" },
6311+        { 0, NULL, NULL }
6312+      };
6313+      GType g_define_type_id =
6314+        g_enum_register_static (g_intern_static_string ("GUnixSocketAddressType"), values);
6315+      g_once_init_leave (&static_g_define_type_id, g_define_type_id);
6316+    }
6317+
6318+  return static_g_define_type_id;
6319+}
6320+GType
6321+g_bus_type_get_type (void)
6322+{
6323+  static gsize static_g_define_type_id = 0;
6324+
6325+  if (g_once_init_enter (&static_g_define_type_id))
6326+    {
6327+      static const GEnumValue values[] = {
6328+        { G_BUS_TYPE_STARTER, "G_BUS_TYPE_STARTER", "starter" },
6329+        { G_BUS_TYPE_NONE, "G_BUS_TYPE_NONE", "none" },
6330+        { G_BUS_TYPE_SYSTEM, "G_BUS_TYPE_SYSTEM", "system" },
6331+        { G_BUS_TYPE_SESSION, "G_BUS_TYPE_SESSION", "session" },
6332+        { 0, NULL, NULL }
6333+      };
6334+      GType g_define_type_id =
6335+        g_enum_register_static (g_intern_static_string ("GBusType"), values);
6336+      g_once_init_leave (&static_g_define_type_id, g_define_type_id);
6337+    }
6338+
6339+  return static_g_define_type_id;
6340+}
6341+GType
6342+g_bus_name_owner_flags_get_type (void)
6343+{
6344+  static gsize static_g_define_type_id = 0;
6345+
6346+  if (g_once_init_enter (&static_g_define_type_id))
6347+    {
6348+      static const GFlagsValue values[] = {
6349+        { G_BUS_NAME_OWNER_FLAGS_NONE, "G_BUS_NAME_OWNER_FLAGS_NONE", "none" },
6350+        { G_BUS_NAME_OWNER_FLAGS_ALLOW_REPLACEMENT, "G_BUS_NAME_OWNER_FLAGS_ALLOW_REPLACEMENT", "allow-replacement" },
6351+        { G_BUS_NAME_OWNER_FLAGS_REPLACE, "G_BUS_NAME_OWNER_FLAGS_REPLACE", "replace" },
6352+        { G_BUS_NAME_OWNER_FLAGS_DO_NOT_QUEUE, "G_BUS_NAME_OWNER_FLAGS_DO_NOT_QUEUE", "do-not-queue" },
6353+        { 0, NULL, NULL }
6354+      };
6355+      GType g_define_type_id =
6356+        g_flags_register_static (g_intern_static_string ("GBusNameOwnerFlags"), values);
6357+      g_once_init_leave (&static_g_define_type_id, g_define_type_id);
6358+    }
6359+
6360+  return static_g_define_type_id;
6361+}
6362+GType
6363+g_bus_name_watcher_flags_get_type (void)
6364+{
6365+  static gsize static_g_define_type_id = 0;
6366+
6367+  if (g_once_init_enter (&static_g_define_type_id))
6368+    {
6369+      static const GFlagsValue values[] = {
6370+        { G_BUS_NAME_WATCHER_FLAGS_NONE, "G_BUS_NAME_WATCHER_FLAGS_NONE", "none" },
6371+        { G_BUS_NAME_WATCHER_FLAGS_AUTO_START, "G_BUS_NAME_WATCHER_FLAGS_AUTO_START", "auto-start" },
6372+        { 0, NULL, NULL }
6373+      };
6374+      GType g_define_type_id =
6375+        g_flags_register_static (g_intern_static_string ("GBusNameWatcherFlags"), values);
6376+      g_once_init_leave (&static_g_define_type_id, g_define_type_id);
6377+    }
6378+
6379+  return static_g_define_type_id;
6380+}
6381+GType
6382+g_dbus_proxy_flags_get_type (void)
6383+{
6384+  static gsize static_g_define_type_id = 0;
6385+
6386+  if (g_once_init_enter (&static_g_define_type_id))
6387+    {
6388+      static const GFlagsValue values[] = {
6389+        { G_DBUS_PROXY_FLAGS_NONE, "G_DBUS_PROXY_FLAGS_NONE", "none" },
6390+        { G_DBUS_PROXY_FLAGS_DO_NOT_LOAD_PROPERTIES, "G_DBUS_PROXY_FLAGS_DO_NOT_LOAD_PROPERTIES", "do-not-load-properties" },
6391+        { G_DBUS_PROXY_FLAGS_DO_NOT_CONNECT_SIGNALS, "G_DBUS_PROXY_FLAGS_DO_NOT_CONNECT_SIGNALS", "do-not-connect-signals" },
6392+        { G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START, "G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START", "do-not-auto-start" },
6393+        { G_DBUS_PROXY_FLAGS_GET_INVALIDATED_PROPERTIES, "G_DBUS_PROXY_FLAGS_GET_INVALIDATED_PROPERTIES", "get-invalidated-properties" },
6394+        { G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START_AT_CONSTRUCTION, "G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START_AT_CONSTRUCTION", "do-not-auto-start-at-construction" },
6395+        { G_DBUS_PROXY_FLAGS_NO_MATCH_RULE, "G_DBUS_PROXY_FLAGS_NO_MATCH_RULE", "no-match-rule" },
6396+        { 0, NULL, NULL }
6397+      };
6398+      GType g_define_type_id =
6399+        g_flags_register_static (g_intern_static_string ("GDBusProxyFlags"), values);
6400+      g_once_init_leave (&static_g_define_type_id, g_define_type_id);
6401+    }
6402+
6403+  return static_g_define_type_id;
6404+}
6405+GType
6406+g_dbus_error_get_type (void)
6407+{
6408+  static gsize static_g_define_type_id = 0;
6409+
6410+  if (g_once_init_enter (&static_g_define_type_id))
6411+    {
6412+      static const GEnumValue values[] = {
6413+        { G_DBUS_ERROR_FAILED, "G_DBUS_ERROR_FAILED", "failed" },
6414+        { G_DBUS_ERROR_NO_MEMORY, "G_DBUS_ERROR_NO_MEMORY", "no-memory" },
6415+        { G_DBUS_ERROR_SERVICE_UNKNOWN, "G_DBUS_ERROR_SERVICE_UNKNOWN", "service-unknown" },
6416+        { G_DBUS_ERROR_NAME_HAS_NO_OWNER, "G_DBUS_ERROR_NAME_HAS_NO_OWNER", "name-has-no-owner" },
6417+        { G_DBUS_ERROR_NO_REPLY, "G_DBUS_ERROR_NO_REPLY", "no-reply" },
6418+        { G_DBUS_ERROR_IO_ERROR, "G_DBUS_ERROR_IO_ERROR", "io-error" },
6419+        { G_DBUS_ERROR_BAD_ADDRESS, "G_DBUS_ERROR_BAD_ADDRESS", "bad-address" },
6420+        { G_DBUS_ERROR_NOT_SUPPORTED, "G_DBUS_ERROR_NOT_SUPPORTED", "not-supported" },
6421+        { G_DBUS_ERROR_LIMITS_EXCEEDED, "G_DBUS_ERROR_LIMITS_EXCEEDED", "limits-exceeded" },
6422+        { G_DBUS_ERROR_ACCESS_DENIED, "G_DBUS_ERROR_ACCESS_DENIED", "access-denied" },
6423+        { G_DBUS_ERROR_AUTH_FAILED, "G_DBUS_ERROR_AUTH_FAILED", "auth-failed" },
6424+        { G_DBUS_ERROR_NO_SERVER, "G_DBUS_ERROR_NO_SERVER", "no-server" },
6425+        { G_DBUS_ERROR_TIMEOUT, "G_DBUS_ERROR_TIMEOUT", "timeout" },
6426+        { G_DBUS_ERROR_NO_NETWORK, "G_DBUS_ERROR_NO_NETWORK", "no-network" },
6427+        { G_DBUS_ERROR_ADDRESS_IN_USE, "G_DBUS_ERROR_ADDRESS_IN_USE", "address-in-use" },
6428+        { G_DBUS_ERROR_DISCONNECTED, "G_DBUS_ERROR_DISCONNECTED", "disconnected" },
6429+        { G_DBUS_ERROR_INVALID_ARGS, "G_DBUS_ERROR_INVALID_ARGS", "invalid-args" },
6430+        { G_DBUS_ERROR_FILE_NOT_FOUND, "G_DBUS_ERROR_FILE_NOT_FOUND", "file-not-found" },
6431+        { G_DBUS_ERROR_FILE_EXISTS, "G_DBUS_ERROR_FILE_EXISTS", "file-exists" },
6432+        { G_DBUS_ERROR_UNKNOWN_METHOD, "G_DBUS_ERROR_UNKNOWN_METHOD", "unknown-method" },
6433+        { G_DBUS_ERROR_TIMED_OUT, "G_DBUS_ERROR_TIMED_OUT", "timed-out" },
6434+        { G_DBUS_ERROR_MATCH_RULE_NOT_FOUND, "G_DBUS_ERROR_MATCH_RULE_NOT_FOUND", "match-rule-not-found" },
6435+        { G_DBUS_ERROR_MATCH_RULE_INVALID, "G_DBUS_ERROR_MATCH_RULE_INVALID", "match-rule-invalid" },
6436+        { G_DBUS_ERROR_SPAWN_EXEC_FAILED, "G_DBUS_ERROR_SPAWN_EXEC_FAILED", "spawn-exec-failed" },
6437+        { G_DBUS_ERROR_SPAWN_FORK_FAILED, "G_DBUS_ERROR_SPAWN_FORK_FAILED", "spawn-fork-failed" },
6438+        { G_DBUS_ERROR_SPAWN_CHILD_EXITED, "G_DBUS_ERROR_SPAWN_CHILD_EXITED", "spawn-child-exited" },
6439+        { G_DBUS_ERROR_SPAWN_CHILD_SIGNALED, "G_DBUS_ERROR_SPAWN_CHILD_SIGNALED", "spawn-child-signaled" },
6440+        { G_DBUS_ERROR_SPAWN_FAILED, "G_DBUS_ERROR_SPAWN_FAILED", "spawn-failed" },
6441+        { G_DBUS_ERROR_SPAWN_SETUP_FAILED, "G_DBUS_ERROR_SPAWN_SETUP_FAILED", "spawn-setup-failed" },
6442+        { G_DBUS_ERROR_SPAWN_CONFIG_INVALID, "G_DBUS_ERROR_SPAWN_CONFIG_INVALID", "spawn-config-invalid" },
6443+        { G_DBUS_ERROR_SPAWN_SERVICE_INVALID, "G_DBUS_ERROR_SPAWN_SERVICE_INVALID", "spawn-service-invalid" },
6444+        { G_DBUS_ERROR_SPAWN_SERVICE_NOT_FOUND, "G_DBUS_ERROR_SPAWN_SERVICE_NOT_FOUND", "spawn-service-not-found" },
6445+        { G_DBUS_ERROR_SPAWN_PERMISSIONS_INVALID, "G_DBUS_ERROR_SPAWN_PERMISSIONS_INVALID", "spawn-permissions-invalid" },
6446+        { G_DBUS_ERROR_SPAWN_FILE_INVALID, "G_DBUS_ERROR_SPAWN_FILE_INVALID", "spawn-file-invalid" },
6447+        { G_DBUS_ERROR_SPAWN_NO_MEMORY, "G_DBUS_ERROR_SPAWN_NO_MEMORY", "spawn-no-memory" },
6448+        { G_DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN, "G_DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN", "unix-process-id-unknown" },
6449+        { G_DBUS_ERROR_INVALID_SIGNATURE, "G_DBUS_ERROR_INVALID_SIGNATURE", "invalid-signature" },
6450+        { G_DBUS_ERROR_INVALID_FILE_CONTENT, "G_DBUS_ERROR_INVALID_FILE_CONTENT", "invalid-file-content" },
6451+        { G_DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN, "G_DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN", "selinux-security-context-unknown" },
6452+        { G_DBUS_ERROR_ADT_AUDIT_DATA_UNKNOWN, "G_DBUS_ERROR_ADT_AUDIT_DATA_UNKNOWN", "adt-audit-data-unknown" },
6453+        { G_DBUS_ERROR_OBJECT_PATH_IN_USE, "G_DBUS_ERROR_OBJECT_PATH_IN_USE", "object-path-in-use" },
6454+        { G_DBUS_ERROR_UNKNOWN_OBJECT, "G_DBUS_ERROR_UNKNOWN_OBJECT", "unknown-object" },
6455+        { G_DBUS_ERROR_UNKNOWN_INTERFACE, "G_DBUS_ERROR_UNKNOWN_INTERFACE", "unknown-interface" },
6456+        { G_DBUS_ERROR_UNKNOWN_PROPERTY, "G_DBUS_ERROR_UNKNOWN_PROPERTY", "unknown-property" },
6457+        { G_DBUS_ERROR_PROPERTY_READ_ONLY, "G_DBUS_ERROR_PROPERTY_READ_ONLY", "property-read-only" },
6458+        { 0, NULL, NULL }
6459+      };
6460+      GType g_define_type_id =
6461+        g_enum_register_static (g_intern_static_string ("GDBusError"), values);
6462+      g_once_init_leave (&static_g_define_type_id, g_define_type_id);
6463+    }
6464+
6465+  return static_g_define_type_id;
6466+}
6467+GType
6468+g_dbus_connection_flags_get_type (void)
6469+{
6470+  static gsize static_g_define_type_id = 0;
6471+
6472+  if (g_once_init_enter (&static_g_define_type_id))
6473+    {
6474+      static const GFlagsValue values[] = {
6475+        { G_DBUS_CONNECTION_FLAGS_NONE, "G_DBUS_CONNECTION_FLAGS_NONE", "none" },
6476+        { G_DBUS_CONNECTION_FLAGS_AUTHENTICATION_CLIENT, "G_DBUS_CONNECTION_FLAGS_AUTHENTICATION_CLIENT", "authentication-client" },
6477+        { G_DBUS_CONNECTION_FLAGS_AUTHENTICATION_SERVER, "G_DBUS_CONNECTION_FLAGS_AUTHENTICATION_SERVER", "authentication-server" },
6478+        { G_DBUS_CONNECTION_FLAGS_AUTHENTICATION_ALLOW_ANONYMOUS, "G_DBUS_CONNECTION_FLAGS_AUTHENTICATION_ALLOW_ANONYMOUS", "authentication-allow-anonymous" },
6479+        { G_DBUS_CONNECTION_FLAGS_MESSAGE_BUS_CONNECTION, "G_DBUS_CONNECTION_FLAGS_MESSAGE_BUS_CONNECTION", "message-bus-connection" },
6480+        { G_DBUS_CONNECTION_FLAGS_DELAY_MESSAGE_PROCESSING, "G_DBUS_CONNECTION_FLAGS_DELAY_MESSAGE_PROCESSING", "delay-message-processing" },
6481+        { G_DBUS_CONNECTION_FLAGS_AUTHENTICATION_REQUIRE_SAME_USER, "G_DBUS_CONNECTION_FLAGS_AUTHENTICATION_REQUIRE_SAME_USER", "authentication-require-same-user" },
6482+        { 0, NULL, NULL }
6483+      };
6484+      GType g_define_type_id =
6485+        g_flags_register_static (g_intern_static_string ("GDBusConnectionFlags"), values);
6486+      g_once_init_leave (&static_g_define_type_id, g_define_type_id);
6487+    }
6488+
6489+  return static_g_define_type_id;
6490+}
6491+GType
6492+g_dbus_capability_flags_get_type (void)
6493+{
6494+  static gsize static_g_define_type_id = 0;
6495+
6496+  if (g_once_init_enter (&static_g_define_type_id))
6497+    {
6498+      static const GFlagsValue values[] = {
6499+        { G_DBUS_CAPABILITY_FLAGS_NONE, "G_DBUS_CAPABILITY_FLAGS_NONE", "none" },
6500+        { G_DBUS_CAPABILITY_FLAGS_UNIX_FD_PASSING, "G_DBUS_CAPABILITY_FLAGS_UNIX_FD_PASSING", "unix-fd-passing" },
6501+        { 0, NULL, NULL }
6502+      };
6503+      GType g_define_type_id =
6504+        g_flags_register_static (g_intern_static_string ("GDBusCapabilityFlags"), values);
6505+      g_once_init_leave (&static_g_define_type_id, g_define_type_id);
6506+    }
6507+
6508+  return static_g_define_type_id;
6509+}
6510+GType
6511+g_dbus_call_flags_get_type (void)
6512+{
6513+  static gsize static_g_define_type_id = 0;
6514+
6515+  if (g_once_init_enter (&static_g_define_type_id))
6516+    {
6517+      static const GFlagsValue values[] = {
6518+        { G_DBUS_CALL_FLAGS_NONE, "G_DBUS_CALL_FLAGS_NONE", "none" },
6519+        { G_DBUS_CALL_FLAGS_NO_AUTO_START, "G_DBUS_CALL_FLAGS_NO_AUTO_START", "no-auto-start" },
6520+        { G_DBUS_CALL_FLAGS_ALLOW_INTERACTIVE_AUTHORIZATION, "G_DBUS_CALL_FLAGS_ALLOW_INTERACTIVE_AUTHORIZATION", "allow-interactive-authorization" },
6521+        { 0, NULL, NULL }
6522+      };
6523+      GType g_define_type_id =
6524+        g_flags_register_static (g_intern_static_string ("GDBusCallFlags"), values);
6525+      g_once_init_leave (&static_g_define_type_id, g_define_type_id);
6526+    }
6527+
6528+  return static_g_define_type_id;
6529+}
6530+GType
6531+g_dbus_message_type_get_type (void)
6532+{
6533+  static gsize static_g_define_type_id = 0;
6534+
6535+  if (g_once_init_enter (&static_g_define_type_id))
6536+    {
6537+      static const GEnumValue values[] = {
6538+        { G_DBUS_MESSAGE_TYPE_INVALID, "G_DBUS_MESSAGE_TYPE_INVALID", "invalid" },
6539+        { G_DBUS_MESSAGE_TYPE_METHOD_CALL, "G_DBUS_MESSAGE_TYPE_METHOD_CALL", "method-call" },
6540+        { G_DBUS_MESSAGE_TYPE_METHOD_RETURN, "G_DBUS_MESSAGE_TYPE_METHOD_RETURN", "method-return" },
6541+        { G_DBUS_MESSAGE_TYPE_ERROR, "G_DBUS_MESSAGE_TYPE_ERROR", "error" },
6542+        { G_DBUS_MESSAGE_TYPE_SIGNAL, "G_DBUS_MESSAGE_TYPE_SIGNAL", "signal" },
6543+        { 0, NULL, NULL }
6544+      };
6545+      GType g_define_type_id =
6546+        g_enum_register_static (g_intern_static_string ("GDBusMessageType"), values);
6547+      g_once_init_leave (&static_g_define_type_id, g_define_type_id);
6548+    }
6549+
6550+  return static_g_define_type_id;
6551+}
6552+GType
6553+g_dbus_message_flags_get_type (void)
6554+{
6555+  static gsize static_g_define_type_id = 0;
6556+
6557+  if (g_once_init_enter (&static_g_define_type_id))
6558+    {
6559+      static const GFlagsValue values[] = {
6560+        { G_DBUS_MESSAGE_FLAGS_NONE, "G_DBUS_MESSAGE_FLAGS_NONE", "none" },
6561+        { G_DBUS_MESSAGE_FLAGS_NO_REPLY_EXPECTED, "G_DBUS_MESSAGE_FLAGS_NO_REPLY_EXPECTED", "no-reply-expected" },
6562+        { G_DBUS_MESSAGE_FLAGS_NO_AUTO_START, "G_DBUS_MESSAGE_FLAGS_NO_AUTO_START", "no-auto-start" },
6563+        { G_DBUS_MESSAGE_FLAGS_ALLOW_INTERACTIVE_AUTHORIZATION, "G_DBUS_MESSAGE_FLAGS_ALLOW_INTERACTIVE_AUTHORIZATION", "allow-interactive-authorization" },
6564+        { 0, NULL, NULL }
6565+      };
6566+      GType g_define_type_id =
6567+        g_flags_register_static (g_intern_static_string ("GDBusMessageFlags"), values);
6568+      g_once_init_leave (&static_g_define_type_id, g_define_type_id);
6569+    }
6570+
6571+  return static_g_define_type_id;
6572+}
6573+GType
6574+g_dbus_message_header_field_get_type (void)
6575+{
6576+  static gsize static_g_define_type_id = 0;
6577+
6578+  if (g_once_init_enter (&static_g_define_type_id))
6579+    {
6580+      static const GEnumValue values[] = {
6581+        { G_DBUS_MESSAGE_HEADER_FIELD_INVALID, "G_DBUS_MESSAGE_HEADER_FIELD_INVALID", "invalid" },
6582+        { G_DBUS_MESSAGE_HEADER_FIELD_PATH, "G_DBUS_MESSAGE_HEADER_FIELD_PATH", "path" },
6583+        { G_DBUS_MESSAGE_HEADER_FIELD_INTERFACE, "G_DBUS_MESSAGE_HEADER_FIELD_INTERFACE", "interface" },
6584+        { G_DBUS_MESSAGE_HEADER_FIELD_MEMBER, "G_DBUS_MESSAGE_HEADER_FIELD_MEMBER", "member" },
6585+        { G_DBUS_MESSAGE_HEADER_FIELD_ERROR_NAME, "G_DBUS_MESSAGE_HEADER_FIELD_ERROR_NAME", "error-name" },
6586+        { G_DBUS_MESSAGE_HEADER_FIELD_REPLY_SERIAL, "G_DBUS_MESSAGE_HEADER_FIELD_REPLY_SERIAL", "reply-serial" },
6587+        { G_DBUS_MESSAGE_HEADER_FIELD_DESTINATION, "G_DBUS_MESSAGE_HEADER_FIELD_DESTINATION", "destination" },
6588+        { G_DBUS_MESSAGE_HEADER_FIELD_SENDER, "G_DBUS_MESSAGE_HEADER_FIELD_SENDER", "sender" },
6589+        { G_DBUS_MESSAGE_HEADER_FIELD_SIGNATURE, "G_DBUS_MESSAGE_HEADER_FIELD_SIGNATURE", "signature" },
6590+        { G_DBUS_MESSAGE_HEADER_FIELD_NUM_UNIX_FDS, "G_DBUS_MESSAGE_HEADER_FIELD_NUM_UNIX_FDS", "num-unix-fds" },
6591+        { 0, NULL, NULL }
6592+      };
6593+      GType g_define_type_id =
6594+        g_enum_register_static (g_intern_static_string ("GDBusMessageHeaderField"), values);
6595+      g_once_init_leave (&static_g_define_type_id, g_define_type_id);
6596+    }
6597+
6598+  return static_g_define_type_id;
6599+}
6600+GType
6601+g_dbus_property_info_flags_get_type (void)
6602+{
6603+  static gsize static_g_define_type_id = 0;
6604+
6605+  if (g_once_init_enter (&static_g_define_type_id))
6606+    {
6607+      static const GFlagsValue values[] = {
6608+        { G_DBUS_PROPERTY_INFO_FLAGS_NONE, "G_DBUS_PROPERTY_INFO_FLAGS_NONE", "none" },
6609+        { G_DBUS_PROPERTY_INFO_FLAGS_READABLE, "G_DBUS_PROPERTY_INFO_FLAGS_READABLE", "readable" },
6610+        { G_DBUS_PROPERTY_INFO_FLAGS_WRITABLE, "G_DBUS_PROPERTY_INFO_FLAGS_WRITABLE", "writable" },
6611+        { 0, NULL, NULL }
6612+      };
6613+      GType g_define_type_id =
6614+        g_flags_register_static (g_intern_static_string ("GDBusPropertyInfoFlags"), values);
6615+      g_once_init_leave (&static_g_define_type_id, g_define_type_id);
6616+    }
6617+
6618+  return static_g_define_type_id;
6619+}
6620+GType
6621+g_dbus_subtree_flags_get_type (void)
6622+{
6623+  static gsize static_g_define_type_id = 0;
6624+
6625+  if (g_once_init_enter (&static_g_define_type_id))
6626+    {
6627+      static const GFlagsValue values[] = {
6628+        { G_DBUS_SUBTREE_FLAGS_NONE, "G_DBUS_SUBTREE_FLAGS_NONE", "none" },
6629+        { G_DBUS_SUBTREE_FLAGS_DISPATCH_TO_UNENUMERATED_NODES, "G_DBUS_SUBTREE_FLAGS_DISPATCH_TO_UNENUMERATED_NODES", "dispatch-to-unenumerated-nodes" },
6630+        { 0, NULL, NULL }
6631+      };
6632+      GType g_define_type_id =
6633+        g_flags_register_static (g_intern_static_string ("GDBusSubtreeFlags"), values);
6634+      g_once_init_leave (&static_g_define_type_id, g_define_type_id);
6635+    }
6636+
6637+  return static_g_define_type_id;
6638+}
6639+GType
6640+g_dbus_server_flags_get_type (void)
6641+{
6642+  static gsize static_g_define_type_id = 0;
6643+
6644+  if (g_once_init_enter (&static_g_define_type_id))
6645+    {
6646+      static const GFlagsValue values[] = {
6647+        { G_DBUS_SERVER_FLAGS_NONE, "G_DBUS_SERVER_FLAGS_NONE", "none" },
6648+        { G_DBUS_SERVER_FLAGS_RUN_IN_THREAD, "G_DBUS_SERVER_FLAGS_RUN_IN_THREAD", "run-in-thread" },
6649+        { G_DBUS_SERVER_FLAGS_AUTHENTICATION_ALLOW_ANONYMOUS, "G_DBUS_SERVER_FLAGS_AUTHENTICATION_ALLOW_ANONYMOUS", "authentication-allow-anonymous" },
6650+        { G_DBUS_SERVER_FLAGS_AUTHENTICATION_REQUIRE_SAME_USER, "G_DBUS_SERVER_FLAGS_AUTHENTICATION_REQUIRE_SAME_USER", "authentication-require-same-user" },
6651+        { 0, NULL, NULL }
6652+      };
6653+      GType g_define_type_id =
6654+        g_flags_register_static (g_intern_static_string ("GDBusServerFlags"), values);
6655+      g_once_init_leave (&static_g_define_type_id, g_define_type_id);
6656+    }
6657+
6658+  return static_g_define_type_id;
6659+}
6660+GType
6661+g_dbus_signal_flags_get_type (void)
6662+{
6663+  static gsize static_g_define_type_id = 0;
6664+
6665+  if (g_once_init_enter (&static_g_define_type_id))
6666+    {
6667+      static const GFlagsValue values[] = {
6668+        { G_DBUS_SIGNAL_FLAGS_NONE, "G_DBUS_SIGNAL_FLAGS_NONE", "none" },
6669+        { G_DBUS_SIGNAL_FLAGS_NO_MATCH_RULE, "G_DBUS_SIGNAL_FLAGS_NO_MATCH_RULE", "no-match-rule" },
6670+        { G_DBUS_SIGNAL_FLAGS_MATCH_ARG0_NAMESPACE, "G_DBUS_SIGNAL_FLAGS_MATCH_ARG0_NAMESPACE", "match-arg0-namespace" },
6671+        { G_DBUS_SIGNAL_FLAGS_MATCH_ARG0_PATH, "G_DBUS_SIGNAL_FLAGS_MATCH_ARG0_PATH", "match-arg0-path" },
6672+        { 0, NULL, NULL }
6673+      };
6674+      GType g_define_type_id =
6675+        g_flags_register_static (g_intern_static_string ("GDBusSignalFlags"), values);
6676+      g_once_init_leave (&static_g_define_type_id, g_define_type_id);
6677+    }
6678+
6679+  return static_g_define_type_id;
6680+}
6681+GType
6682+g_dbus_send_message_flags_get_type (void)
6683+{
6684+  static gsize static_g_define_type_id = 0;
6685+
6686+  if (g_once_init_enter (&static_g_define_type_id))
6687+    {
6688+      static const GFlagsValue values[] = {
6689+        { G_DBUS_SEND_MESSAGE_FLAGS_NONE, "G_DBUS_SEND_MESSAGE_FLAGS_NONE", "none" },
6690+        { G_DBUS_SEND_MESSAGE_FLAGS_PRESERVE_SERIAL, "G_DBUS_SEND_MESSAGE_FLAGS_PRESERVE_SERIAL", "preserve-serial" },
6691+        { 0, NULL, NULL }
6692+      };
6693+      GType g_define_type_id =
6694+        g_flags_register_static (g_intern_static_string ("GDBusSendMessageFlags"), values);
6695+      g_once_init_leave (&static_g_define_type_id, g_define_type_id);
6696+    }
6697+
6698+  return static_g_define_type_id;
6699+}
6700+GType
6701+g_credentials_type_get_type (void)
6702+{
6703+  static gsize static_g_define_type_id = 0;
6704+
6705+  if (g_once_init_enter (&static_g_define_type_id))
6706+    {
6707+      static const GEnumValue values[] = {
6708+        { G_CREDENTIALS_TYPE_INVALID, "G_CREDENTIALS_TYPE_INVALID", "invalid" },
6709+        { G_CREDENTIALS_TYPE_LINUX_UCRED, "G_CREDENTIALS_TYPE_LINUX_UCRED", "linux-ucred" },
6710+        { G_CREDENTIALS_TYPE_FREEBSD_CMSGCRED, "G_CREDENTIALS_TYPE_FREEBSD_CMSGCRED", "freebsd-cmsgcred" },
6711+        { G_CREDENTIALS_TYPE_OPENBSD_SOCKPEERCRED, "G_CREDENTIALS_TYPE_OPENBSD_SOCKPEERCRED", "openbsd-sockpeercred" },
6712+        { G_CREDENTIALS_TYPE_SOLARIS_UCRED, "G_CREDENTIALS_TYPE_SOLARIS_UCRED", "solaris-ucred" },
6713+        { G_CREDENTIALS_TYPE_NETBSD_UNPCBID, "G_CREDENTIALS_TYPE_NETBSD_UNPCBID", "netbsd-unpcbid" },
6714+        { G_CREDENTIALS_TYPE_APPLE_XUCRED, "G_CREDENTIALS_TYPE_APPLE_XUCRED", "apple-xucred" },
6715+        { G_CREDENTIALS_TYPE_WIN32_PID, "G_CREDENTIALS_TYPE_WIN32_PID", "win32-pid" },
6716+        { 0, NULL, NULL }
6717+      };
6718+      GType g_define_type_id =
6719+        g_enum_register_static (g_intern_static_string ("GCredentialsType"), values);
6720+      g_once_init_leave (&static_g_define_type_id, g_define_type_id);
6721+    }
6722+
6723+  return static_g_define_type_id;
6724+}
6725+GType
6726+g_dbus_message_byte_order_get_type (void)
6727+{
6728+  static gsize static_g_define_type_id = 0;
6729+
6730+  if (g_once_init_enter (&static_g_define_type_id))
6731+    {
6732+      static const GEnumValue values[] = {
6733+        { G_DBUS_MESSAGE_BYTE_ORDER_BIG_ENDIAN, "G_DBUS_MESSAGE_BYTE_ORDER_BIG_ENDIAN", "big-endian" },
6734+        { G_DBUS_MESSAGE_BYTE_ORDER_LITTLE_ENDIAN, "G_DBUS_MESSAGE_BYTE_ORDER_LITTLE_ENDIAN", "little-endian" },
6735+        { 0, NULL, NULL }
6736+      };
6737+      GType g_define_type_id =
6738+        g_enum_register_static (g_intern_static_string ("GDBusMessageByteOrder"), values);
6739+      g_once_init_leave (&static_g_define_type_id, g_define_type_id);
6740+    }
6741+
6742+  return static_g_define_type_id;
6743+}
6744+GType
6745+g_application_flags_get_type (void)
6746+{
6747+  static gsize static_g_define_type_id = 0;
6748+
6749+  if (g_once_init_enter (&static_g_define_type_id))
6750+    {
6751+      static const GFlagsValue values[] = {
6752+        { G_APPLICATION_FLAGS_NONE, "G_APPLICATION_FLAGS_NONE", "flags-none" },
6753+        { G_APPLICATION_IS_SERVICE, "G_APPLICATION_IS_SERVICE", "is-service" },
6754+        { G_APPLICATION_IS_LAUNCHER, "G_APPLICATION_IS_LAUNCHER", "is-launcher" },
6755+        { G_APPLICATION_HANDLES_OPEN, "G_APPLICATION_HANDLES_OPEN", "handles-open" },
6756+        { G_APPLICATION_HANDLES_COMMAND_LINE, "G_APPLICATION_HANDLES_COMMAND_LINE", "handles-command-line" },
6757+        { G_APPLICATION_SEND_ENVIRONMENT, "G_APPLICATION_SEND_ENVIRONMENT", "send-environment" },
6758+        { G_APPLICATION_NON_UNIQUE, "G_APPLICATION_NON_UNIQUE", "non-unique" },
6759+        { G_APPLICATION_CAN_OVERRIDE_APP_ID, "G_APPLICATION_CAN_OVERRIDE_APP_ID", "can-override-app-id" },
6760+        { G_APPLICATION_ALLOW_REPLACEMENT, "G_APPLICATION_ALLOW_REPLACEMENT", "allow-replacement" },
6761+        { G_APPLICATION_REPLACE, "G_APPLICATION_REPLACE", "replace" },
6762+        { 0, NULL, NULL }
6763+      };
6764+      GType g_define_type_id =
6765+        g_flags_register_static (g_intern_static_string ("GApplicationFlags"), values);
6766+      g_once_init_leave (&static_g_define_type_id, g_define_type_id);
6767+    }
6768+
6769+  return static_g_define_type_id;
6770+}
6771+GType
6772+g_tls_error_get_type (void)
6773+{
6774+  static gsize static_g_define_type_id = 0;
6775+
6776+  if (g_once_init_enter (&static_g_define_type_id))
6777+    {
6778+      static const GEnumValue values[] = {
6779+        { G_TLS_ERROR_UNAVAILABLE, "G_TLS_ERROR_UNAVAILABLE", "unavailable" },
6780+        { G_TLS_ERROR_MISC, "G_TLS_ERROR_MISC", "misc" },
6781+        { G_TLS_ERROR_BAD_CERTIFICATE, "G_TLS_ERROR_BAD_CERTIFICATE", "bad-certificate" },
6782+        { G_TLS_ERROR_NOT_TLS, "G_TLS_ERROR_NOT_TLS", "not-tls" },
6783+        { G_TLS_ERROR_HANDSHAKE, "G_TLS_ERROR_HANDSHAKE", "handshake" },
6784+        { G_TLS_ERROR_CERTIFICATE_REQUIRED, "G_TLS_ERROR_CERTIFICATE_REQUIRED", "certificate-required" },
6785+        { G_TLS_ERROR_EOF, "G_TLS_ERROR_EOF", "eof" },
6786+        { G_TLS_ERROR_INAPPROPRIATE_FALLBACK, "G_TLS_ERROR_INAPPROPRIATE_FALLBACK", "inappropriate-fallback" },
6787+        { G_TLS_ERROR_BAD_CERTIFICATE_PASSWORD, "G_TLS_ERROR_BAD_CERTIFICATE_PASSWORD", "bad-certificate-password" },
6788+        { 0, NULL, NULL }
6789+      };
6790+      GType g_define_type_id =
6791+        g_enum_register_static (g_intern_static_string ("GTlsError"), values);
6792+      g_once_init_leave (&static_g_define_type_id, g_define_type_id);
6793+    }
6794+
6795+  return static_g_define_type_id;
6796+}
6797+GType
6798+g_tls_certificate_flags_get_type (void)
6799+{
6800+  static gsize static_g_define_type_id = 0;
6801+
6802+  if (g_once_init_enter (&static_g_define_type_id))
6803+    {
6804+      static const GFlagsValue values[] = {
6805+        { G_TLS_CERTIFICATE_FLAGS_NONE, "G_TLS_CERTIFICATE_FLAGS_NONE", "flags-none" },
6806+        { G_TLS_CERTIFICATE_UNKNOWN_CA, "G_TLS_CERTIFICATE_UNKNOWN_CA", "unknown-ca" },
6807+        { G_TLS_CERTIFICATE_BAD_IDENTITY, "G_TLS_CERTIFICATE_BAD_IDENTITY", "bad-identity" },
6808+        { G_TLS_CERTIFICATE_NOT_ACTIVATED, "G_TLS_CERTIFICATE_NOT_ACTIVATED", "not-activated" },
6809+        { G_TLS_CERTIFICATE_EXPIRED, "G_TLS_CERTIFICATE_EXPIRED", "expired" },
6810+        { G_TLS_CERTIFICATE_REVOKED, "G_TLS_CERTIFICATE_REVOKED", "revoked" },
6811+        { G_TLS_CERTIFICATE_INSECURE, "G_TLS_CERTIFICATE_INSECURE", "insecure" },
6812+        { G_TLS_CERTIFICATE_GENERIC_ERROR, "G_TLS_CERTIFICATE_GENERIC_ERROR", "generic-error" },
6813+        { G_TLS_CERTIFICATE_VALIDATE_ALL, "G_TLS_CERTIFICATE_VALIDATE_ALL", "validate-all" },
6814+        { 0, NULL, NULL }
6815+      };
6816+      GType g_define_type_id =
6817+        g_flags_register_static (g_intern_static_string ("GTlsCertificateFlags"), values);
6818+      g_once_init_leave (&static_g_define_type_id, g_define_type_id);
6819+    }
6820+
6821+  return static_g_define_type_id;
6822+}
6823+GType
6824+g_tls_authentication_mode_get_type (void)
6825+{
6826+  static gsize static_g_define_type_id = 0;
6827+
6828+  if (g_once_init_enter (&static_g_define_type_id))
6829+    {
6830+      static const GEnumValue values[] = {
6831+        { G_TLS_AUTHENTICATION_NONE, "G_TLS_AUTHENTICATION_NONE", "none" },
6832+        { G_TLS_AUTHENTICATION_REQUESTED, "G_TLS_AUTHENTICATION_REQUESTED", "requested" },
6833+        { G_TLS_AUTHENTICATION_REQUIRED, "G_TLS_AUTHENTICATION_REQUIRED", "required" },
6834+        { 0, NULL, NULL }
6835+      };
6836+      GType g_define_type_id =
6837+        g_enum_register_static (g_intern_static_string ("GTlsAuthenticationMode"), values);
6838+      g_once_init_leave (&static_g_define_type_id, g_define_type_id);
6839+    }
6840+
6841+  return static_g_define_type_id;
6842+}
6843+GType
6844+g_tls_channel_binding_type_get_type (void)
6845+{
6846+  static gsize static_g_define_type_id = 0;
6847+
6848+  if (g_once_init_enter (&static_g_define_type_id))
6849+    {
6850+      static const GEnumValue values[] = {
6851+        { G_TLS_CHANNEL_BINDING_TLS_UNIQUE, "G_TLS_CHANNEL_BINDING_TLS_UNIQUE", "unique" },
6852+        { G_TLS_CHANNEL_BINDING_TLS_SERVER_END_POINT, "G_TLS_CHANNEL_BINDING_TLS_SERVER_END_POINT", "server-end-point" },
6853+        { 0, NULL, NULL }
6854+      };
6855+      GType g_define_type_id =
6856+        g_enum_register_static (g_intern_static_string ("GTlsChannelBindingType"), values);
6857+      g_once_init_leave (&static_g_define_type_id, g_define_type_id);
6858+    }
6859+
6860+  return static_g_define_type_id;
6861+}
6862+GType
6863+g_tls_channel_binding_error_get_type (void)
6864+{
6865+  static gsize static_g_define_type_id = 0;
6866+
6867+  if (g_once_init_enter (&static_g_define_type_id))
6868+    {
6869+      static const GEnumValue values[] = {
6870+        { G_TLS_CHANNEL_BINDING_ERROR_NOT_IMPLEMENTED, "G_TLS_CHANNEL_BINDING_ERROR_NOT_IMPLEMENTED", "not-implemented" },
6871+        { G_TLS_CHANNEL_BINDING_ERROR_INVALID_STATE, "G_TLS_CHANNEL_BINDING_ERROR_INVALID_STATE", "invalid-state" },
6872+        { G_TLS_CHANNEL_BINDING_ERROR_NOT_AVAILABLE, "G_TLS_CHANNEL_BINDING_ERROR_NOT_AVAILABLE", "not-available" },
6873+        { G_TLS_CHANNEL_BINDING_ERROR_NOT_SUPPORTED, "G_TLS_CHANNEL_BINDING_ERROR_NOT_SUPPORTED", "not-supported" },
6874+        { G_TLS_CHANNEL_BINDING_ERROR_GENERAL_ERROR, "G_TLS_CHANNEL_BINDING_ERROR_GENERAL_ERROR", "general-error" },
6875+        { 0, NULL, NULL }
6876+      };
6877+      GType g_define_type_id =
6878+        g_enum_register_static (g_intern_static_string ("GTlsChannelBindingError"), values);
6879+      g_once_init_leave (&static_g_define_type_id, g_define_type_id);
6880+    }
6881+
6882+  return static_g_define_type_id;
6883+}
6884+GType
6885+g_tls_rehandshake_mode_get_type (void)
6886+{
6887+  static gsize static_g_define_type_id = 0;
6888+
6889+  if (g_once_init_enter (&static_g_define_type_id))
6890+    {
6891+      static const GEnumValue values[] = {
6892+        { G_TLS_REHANDSHAKE_NEVER, "G_TLS_REHANDSHAKE_NEVER", "never" },
6893+        { G_TLS_REHANDSHAKE_SAFELY, "G_TLS_REHANDSHAKE_SAFELY", "safely" },
6894+        { G_TLS_REHANDSHAKE_UNSAFELY, "G_TLS_REHANDSHAKE_UNSAFELY", "unsafely" },
6895+        { 0, NULL, NULL }
6896+      };
6897+      GType g_define_type_id =
6898+        g_enum_register_static (g_intern_static_string ("GTlsRehandshakeMode"), values);
6899+      g_once_init_leave (&static_g_define_type_id, g_define_type_id);
6900+    }
6901+
6902+  return static_g_define_type_id;
6903+}
6904+GType
6905+g_tls_password_flags_get_type (void)
6906+{
6907+  static gsize static_g_define_type_id = 0;
6908+
6909+  if (g_once_init_enter (&static_g_define_type_id))
6910+    {
6911+      static const GFlagsValue values[] = {
6912+        { G_TLS_PASSWORD_NONE, "G_TLS_PASSWORD_NONE", "none" },
6913+        { G_TLS_PASSWORD_RETRY, "G_TLS_PASSWORD_RETRY", "retry" },
6914+        { G_TLS_PASSWORD_MANY_TRIES, "G_TLS_PASSWORD_MANY_TRIES", "many-tries" },
6915+        { G_TLS_PASSWORD_FINAL_TRY, "G_TLS_PASSWORD_FINAL_TRY", "final-try" },
6916+        { G_TLS_PASSWORD_PKCS11_USER, "G_TLS_PASSWORD_PKCS11_USER", "pkcs11-user" },
6917+        { G_TLS_PASSWORD_PKCS11_SECURITY_OFFICER, "G_TLS_PASSWORD_PKCS11_SECURITY_OFFICER", "pkcs11-security-officer" },
6918+        { G_TLS_PASSWORD_PKCS11_CONTEXT_SPECIFIC, "G_TLS_PASSWORD_PKCS11_CONTEXT_SPECIFIC", "pkcs11-context-specific" },
6919+        { 0, NULL, NULL }
6920+      };
6921+      GType g_define_type_id =
6922+        g_flags_register_static (g_intern_static_string ("GTlsPasswordFlags"), values);
6923+      g_once_init_leave (&static_g_define_type_id, g_define_type_id);
6924+    }
6925+
6926+  return static_g_define_type_id;
6927+}
6928+GType
6929+g_tls_interaction_result_get_type (void)
6930+{
6931+  static gsize static_g_define_type_id = 0;
6932+
6933+  if (g_once_init_enter (&static_g_define_type_id))
6934+    {
6935+      static const GEnumValue values[] = {
6936+        { G_TLS_INTERACTION_UNHANDLED, "G_TLS_INTERACTION_UNHANDLED", "unhandled" },
6937+        { G_TLS_INTERACTION_HANDLED, "G_TLS_INTERACTION_HANDLED", "handled" },
6938+        { G_TLS_INTERACTION_FAILED, "G_TLS_INTERACTION_FAILED", "failed" },
6939+        { 0, NULL, NULL }
6940+      };
6941+      GType g_define_type_id =
6942+        g_enum_register_static (g_intern_static_string ("GTlsInteractionResult"), values);
6943+      g_once_init_leave (&static_g_define_type_id, g_define_type_id);
6944+    }
6945+
6946+  return static_g_define_type_id;
6947+}
6948+GType
6949+g_dbus_interface_skeleton_flags_get_type (void)
6950+{
6951+  static gsize static_g_define_type_id = 0;
6952+
6953+  if (g_once_init_enter (&static_g_define_type_id))
6954+    {
6955+      static const GFlagsValue values[] = {
6956+        { G_DBUS_INTERFACE_SKELETON_FLAGS_NONE, "G_DBUS_INTERFACE_SKELETON_FLAGS_NONE", "none" },
6957+        { G_DBUS_INTERFACE_SKELETON_FLAGS_HANDLE_METHOD_INVOCATIONS_IN_THREAD, "G_DBUS_INTERFACE_SKELETON_FLAGS_HANDLE_METHOD_INVOCATIONS_IN_THREAD", "handle-method-invocations-in-thread" },
6958+        { 0, NULL, NULL }
6959+      };
6960+      GType g_define_type_id =
6961+        g_flags_register_static (g_intern_static_string ("GDBusInterfaceSkeletonFlags"), values);
6962+      g_once_init_leave (&static_g_define_type_id, g_define_type_id);
6963+    }
6964+
6965+  return static_g_define_type_id;
6966+}
6967+GType
6968+g_dbus_object_manager_client_flags_get_type (void)
6969+{
6970+  static gsize static_g_define_type_id = 0;
6971+
6972+  if (g_once_init_enter (&static_g_define_type_id))
6973+    {
6974+      static const GFlagsValue values[] = {
6975+        { G_DBUS_OBJECT_MANAGER_CLIENT_FLAGS_NONE, "G_DBUS_OBJECT_MANAGER_CLIENT_FLAGS_NONE", "none" },
6976+        { G_DBUS_OBJECT_MANAGER_CLIENT_FLAGS_DO_NOT_AUTO_START, "G_DBUS_OBJECT_MANAGER_CLIENT_FLAGS_DO_NOT_AUTO_START", "do-not-auto-start" },
6977+        { 0, NULL, NULL }
6978+      };
6979+      GType g_define_type_id =
6980+        g_flags_register_static (g_intern_static_string ("GDBusObjectManagerClientFlags"), values);
6981+      g_once_init_leave (&static_g_define_type_id, g_define_type_id);
6982+    }
6983+
6984+  return static_g_define_type_id;
6985+}
6986+GType
6987+g_tls_database_verify_flags_get_type (void)
6988+{
6989+  static gsize static_g_define_type_id = 0;
6990+
6991+  if (g_once_init_enter (&static_g_define_type_id))
6992+    {
6993+      static const GFlagsValue values[] = {
6994+        { G_TLS_DATABASE_VERIFY_NONE, "G_TLS_DATABASE_VERIFY_NONE", "none" },
6995+        { 0, NULL, NULL }
6996+      };
6997+      GType g_define_type_id =
6998+        g_flags_register_static (g_intern_static_string ("GTlsDatabaseVerifyFlags"), values);
6999+      g_once_init_leave (&static_g_define_type_id, g_define_type_id);
7000+    }
7001+
7002+  return static_g_define_type_id;
7003+}
7004+GType
7005+g_tls_database_lookup_flags_get_type (void)
7006+{
7007+  static gsize static_g_define_type_id = 0;
7008+
7009+  if (g_once_init_enter (&static_g_define_type_id))
7010+    {
7011+      static const GEnumValue values[] = {
7012+        { G_TLS_DATABASE_LOOKUP_NONE, "G_TLS_DATABASE_LOOKUP_NONE", "none" },
7013+        { G_TLS_DATABASE_LOOKUP_KEYPAIR, "G_TLS_DATABASE_LOOKUP_KEYPAIR", "keypair" },
7014+        { 0, NULL, NULL }
7015+      };
7016+      GType g_define_type_id =
7017+        g_enum_register_static (g_intern_static_string ("GTlsDatabaseLookupFlags"), values);
7018+      g_once_init_leave (&static_g_define_type_id, g_define_type_id);
7019+    }
7020+
7021+  return static_g_define_type_id;
7022+}
7023+GType
7024+g_tls_certificate_request_flags_get_type (void)
7025+{
7026+  static gsize static_g_define_type_id = 0;
7027+
7028+  if (g_once_init_enter (&static_g_define_type_id))
7029+    {
7030+      static const GEnumValue values[] = {
7031+        { G_TLS_CERTIFICATE_REQUEST_NONE, "G_TLS_CERTIFICATE_REQUEST_NONE", "none" },
7032+        { 0, NULL, NULL }
7033+      };
7034+      GType g_define_type_id =
7035+        g_enum_register_static (g_intern_static_string ("GTlsCertificateRequestFlags"), values);
7036+      g_once_init_leave (&static_g_define_type_id, g_define_type_id);
7037+    }
7038+
7039+  return static_g_define_type_id;
7040+}
7041+GType
7042+g_tls_protocol_version_get_type (void)
7043+{
7044+  static gsize static_g_define_type_id = 0;
7045+
7046+  if (g_once_init_enter (&static_g_define_type_id))
7047+    {
7048+      static const GEnumValue values[] = {
7049+        { G_TLS_PROTOCOL_VERSION_UNKNOWN, "G_TLS_PROTOCOL_VERSION_UNKNOWN", "unknown" },
7050+        { G_TLS_PROTOCOL_VERSION_SSL_3_0, "G_TLS_PROTOCOL_VERSION_SSL_3_0", "ssl-3-0" },
7051+        { G_TLS_PROTOCOL_VERSION_TLS_1_0, "G_TLS_PROTOCOL_VERSION_TLS_1_0", "tls-1-0" },
7052+        { G_TLS_PROTOCOL_VERSION_TLS_1_1, "G_TLS_PROTOCOL_VERSION_TLS_1_1", "tls-1-1" },
7053+        { G_TLS_PROTOCOL_VERSION_TLS_1_2, "G_TLS_PROTOCOL_VERSION_TLS_1_2", "tls-1-2" },
7054+        { G_TLS_PROTOCOL_VERSION_TLS_1_3, "G_TLS_PROTOCOL_VERSION_TLS_1_3", "tls-1-3" },
7055+        { G_TLS_PROTOCOL_VERSION_DTLS_1_0, "G_TLS_PROTOCOL_VERSION_DTLS_1_0", "dtls-1-0" },
7056+        { G_TLS_PROTOCOL_VERSION_DTLS_1_2, "G_TLS_PROTOCOL_VERSION_DTLS_1_2", "dtls-1-2" },
7057+        { 0, NULL, NULL }
7058+      };
7059+      GType g_define_type_id =
7060+        g_enum_register_static (g_intern_static_string ("GTlsProtocolVersion"), values);
7061+      g_once_init_leave (&static_g_define_type_id, g_define_type_id);
7062+    }
7063+
7064+  return static_g_define_type_id;
7065+}
7066+GType
7067+g_io_module_scope_flags_get_type (void)
7068+{
7069+  static gsize static_g_define_type_id = 0;
7070+
7071+  if (g_once_init_enter (&static_g_define_type_id))
7072+    {
7073+      static const GEnumValue values[] = {
7074+        { G_IO_MODULE_SCOPE_NONE, "G_IO_MODULE_SCOPE_NONE", "none" },
7075+        { G_IO_MODULE_SCOPE_BLOCK_DUPLICATES, "G_IO_MODULE_SCOPE_BLOCK_DUPLICATES", "block-duplicates" },
7076+        { 0, NULL, NULL }
7077+      };
7078+      GType g_define_type_id =
7079+        g_enum_register_static (g_intern_static_string ("GIOModuleScopeFlags"), values);
7080+      g_once_init_leave (&static_g_define_type_id, g_define_type_id);
7081+    }
7082+
7083+  return static_g_define_type_id;
7084+}
7085+GType
7086+g_socket_client_event_get_type (void)
7087+{
7088+  static gsize static_g_define_type_id = 0;
7089+
7090+  if (g_once_init_enter (&static_g_define_type_id))
7091+    {
7092+      static const GEnumValue values[] = {
7093+        { G_SOCKET_CLIENT_RESOLVING, "G_SOCKET_CLIENT_RESOLVING", "resolving" },
7094+        { G_SOCKET_CLIENT_RESOLVED, "G_SOCKET_CLIENT_RESOLVED", "resolved" },
7095+        { G_SOCKET_CLIENT_CONNECTING, "G_SOCKET_CLIENT_CONNECTING", "connecting" },
7096+        { G_SOCKET_CLIENT_CONNECTED, "G_SOCKET_CLIENT_CONNECTED", "connected" },
7097+        { G_SOCKET_CLIENT_PROXY_NEGOTIATING, "G_SOCKET_CLIENT_PROXY_NEGOTIATING", "proxy-negotiating" },
7098+        { G_SOCKET_CLIENT_PROXY_NEGOTIATED, "G_SOCKET_CLIENT_PROXY_NEGOTIATED", "proxy-negotiated" },
7099+        { G_SOCKET_CLIENT_TLS_HANDSHAKING, "G_SOCKET_CLIENT_TLS_HANDSHAKING", "tls-handshaking" },
7100+        { G_SOCKET_CLIENT_TLS_HANDSHAKED, "G_SOCKET_CLIENT_TLS_HANDSHAKED", "tls-handshaked" },
7101+        { G_SOCKET_CLIENT_COMPLETE, "G_SOCKET_CLIENT_COMPLETE", "complete" },
7102+        { 0, NULL, NULL }
7103+      };
7104+      GType g_define_type_id =
7105+        g_enum_register_static (g_intern_static_string ("GSocketClientEvent"), values);
7106+      g_once_init_leave (&static_g_define_type_id, g_define_type_id);
7107+    }
7108+
7109+  return static_g_define_type_id;
7110+}
7111+GType
7112+g_socket_listener_event_get_type (void)
7113+{
7114+  static gsize static_g_define_type_id = 0;
7115+
7116+  if (g_once_init_enter (&static_g_define_type_id))
7117+    {
7118+      static const GEnumValue values[] = {
7119+        { G_SOCKET_LISTENER_BINDING, "G_SOCKET_LISTENER_BINDING", "binding" },
7120+        { G_SOCKET_LISTENER_BOUND, "G_SOCKET_LISTENER_BOUND", "bound" },
7121+        { G_SOCKET_LISTENER_LISTENING, "G_SOCKET_LISTENER_LISTENING", "listening" },
7122+        { G_SOCKET_LISTENER_LISTENED, "G_SOCKET_LISTENER_LISTENED", "listened" },
7123+        { 0, NULL, NULL }
7124+      };
7125+      GType g_define_type_id =
7126+        g_enum_register_static (g_intern_static_string ("GSocketListenerEvent"), values);
7127+      g_once_init_leave (&static_g_define_type_id, g_define_type_id);
7128+    }
7129+
7130+  return static_g_define_type_id;
7131+}
7132+GType
7133+g_test_dbus_flags_get_type (void)
7134+{
7135+  static gsize static_g_define_type_id = 0;
7136+
7137+  if (g_once_init_enter (&static_g_define_type_id))
7138+    {
7139+      static const GFlagsValue values[] = {
7140+        { G_TEST_DBUS_NONE, "G_TEST_DBUS_NONE", "none" },
7141+        { 0, NULL, NULL }
7142+      };
7143+      GType g_define_type_id =
7144+        g_flags_register_static (g_intern_static_string ("GTestDBusFlags"), values);
7145+      g_once_init_leave (&static_g_define_type_id, g_define_type_id);
7146+    }
7147+
7148+  return static_g_define_type_id;
7149+}
7150+GType
7151+g_subprocess_flags_get_type (void)
7152+{
7153+  static gsize static_g_define_type_id = 0;
7154+
7155+  if (g_once_init_enter (&static_g_define_type_id))
7156+    {
7157+      static const GFlagsValue values[] = {
7158+        { G_SUBPROCESS_FLAGS_NONE, "G_SUBPROCESS_FLAGS_NONE", "none" },
7159+        { G_SUBPROCESS_FLAGS_STDIN_PIPE, "G_SUBPROCESS_FLAGS_STDIN_PIPE", "stdin-pipe" },
7160+        { G_SUBPROCESS_FLAGS_STDIN_INHERIT, "G_SUBPROCESS_FLAGS_STDIN_INHERIT", "stdin-inherit" },
7161+        { G_SUBPROCESS_FLAGS_STDOUT_PIPE, "G_SUBPROCESS_FLAGS_STDOUT_PIPE", "stdout-pipe" },
7162+        { G_SUBPROCESS_FLAGS_STDOUT_SILENCE, "G_SUBPROCESS_FLAGS_STDOUT_SILENCE", "stdout-silence" },
7163+        { G_SUBPROCESS_FLAGS_STDERR_PIPE, "G_SUBPROCESS_FLAGS_STDERR_PIPE", "stderr-pipe" },
7164+        { G_SUBPROCESS_FLAGS_STDERR_SILENCE, "G_SUBPROCESS_FLAGS_STDERR_SILENCE", "stderr-silence" },
7165+        { G_SUBPROCESS_FLAGS_STDERR_MERGE, "G_SUBPROCESS_FLAGS_STDERR_MERGE", "stderr-merge" },
7166+        { G_SUBPROCESS_FLAGS_INHERIT_FDS, "G_SUBPROCESS_FLAGS_INHERIT_FDS", "inherit-fds" },
7167+        { G_SUBPROCESS_FLAGS_SEARCH_PATH_FROM_ENVP, "G_SUBPROCESS_FLAGS_SEARCH_PATH_FROM_ENVP", "search-path-from-envp" },
7168+        { 0, NULL, NULL }
7169+      };
7170+      GType g_define_type_id =
7171+        g_flags_register_static (g_intern_static_string ("GSubprocessFlags"), values);
7172+      g_once_init_leave (&static_g_define_type_id, g_define_type_id);
7173+    }
7174+
7175+  return static_g_define_type_id;
7176+}
7177+GType
7178+g_notification_priority_get_type (void)
7179+{
7180+  static gsize static_g_define_type_id = 0;
7181+
7182+  if (g_once_init_enter (&static_g_define_type_id))
7183+    {
7184+      static const GEnumValue values[] = {
7185+        { G_NOTIFICATION_PRIORITY_NORMAL, "G_NOTIFICATION_PRIORITY_NORMAL", "normal" },
7186+        { G_NOTIFICATION_PRIORITY_LOW, "G_NOTIFICATION_PRIORITY_LOW", "low" },
7187+        { G_NOTIFICATION_PRIORITY_HIGH, "G_NOTIFICATION_PRIORITY_HIGH", "high" },
7188+        { G_NOTIFICATION_PRIORITY_URGENT, "G_NOTIFICATION_PRIORITY_URGENT", "urgent" },
7189+        { 0, NULL, NULL }
7190+      };
7191+      GType g_define_type_id =
7192+        g_enum_register_static (g_intern_static_string ("GNotificationPriority"), values);
7193+      g_once_init_leave (&static_g_define_type_id, g_define_type_id);
7194+    }
7195+
7196+  return static_g_define_type_id;
7197+}
7198+GType
7199+g_network_connectivity_get_type (void)
7200+{
7201+  static gsize static_g_define_type_id = 0;
7202+
7203+  if (g_once_init_enter (&static_g_define_type_id))
7204+    {
7205+      static const GEnumValue values[] = {
7206+        { G_NETWORK_CONNECTIVITY_LOCAL, "G_NETWORK_CONNECTIVITY_LOCAL", "local" },
7207+        { G_NETWORK_CONNECTIVITY_LIMITED, "G_NETWORK_CONNECTIVITY_LIMITED", "limited" },
7208+        { G_NETWORK_CONNECTIVITY_PORTAL, "G_NETWORK_CONNECTIVITY_PORTAL", "portal" },
7209+        { G_NETWORK_CONNECTIVITY_FULL, "G_NETWORK_CONNECTIVITY_FULL", "full" },
7210+        { 0, NULL, NULL }
7211+      };
7212+      GType g_define_type_id =
7213+        g_enum_register_static (g_intern_static_string ("GNetworkConnectivity"), values);
7214+      g_once_init_leave (&static_g_define_type_id, g_define_type_id);
7215+    }
7216+
7217+  return static_g_define_type_id;
7218+}
7219+GType
7220+g_pollable_return_get_type (void)
7221+{
7222+  static gsize static_g_define_type_id = 0;
7223+
7224+  if (g_once_init_enter (&static_g_define_type_id))
7225+    {
7226+      static const GEnumValue values[] = {
7227+        { G_POLLABLE_RETURN_FAILED, "G_POLLABLE_RETURN_FAILED", "failed" },
7228+        { G_POLLABLE_RETURN_OK, "G_POLLABLE_RETURN_OK", "ok" },
7229+        { G_POLLABLE_RETURN_WOULD_BLOCK, "G_POLLABLE_RETURN_WOULD_BLOCK", "would-block" },
7230+        { 0, NULL, NULL }
7231+      };
7232+      GType g_define_type_id =
7233+        g_enum_register_static (g_intern_static_string ("GPollableReturn"), values);
7234+      g_once_init_leave (&static_g_define_type_id, g_define_type_id);
7235+    }
7236+
7237+  return static_g_define_type_id;
7238+}
7239+GType
7240+g_memory_monitor_warning_level_get_type (void)
7241+{
7242+  static gsize static_g_define_type_id = 0;
7243+
7244+  if (g_once_init_enter (&static_g_define_type_id))
7245+    {
7246+      static const GEnumValue values[] = {
7247+        { G_MEMORY_MONITOR_WARNING_LEVEL_LOW, "G_MEMORY_MONITOR_WARNING_LEVEL_LOW", "low" },
7248+        { G_MEMORY_MONITOR_WARNING_LEVEL_MEDIUM, "G_MEMORY_MONITOR_WARNING_LEVEL_MEDIUM", "medium" },
7249+        { G_MEMORY_MONITOR_WARNING_LEVEL_CRITICAL, "G_MEMORY_MONITOR_WARNING_LEVEL_CRITICAL", "critical" },
7250+        { 0, NULL, NULL }
7251+      };
7252+      GType g_define_type_id =
7253+        g_enum_register_static (g_intern_static_string ("GMemoryMonitorWarningLevel"), values);
7254+      g_once_init_leave (&static_g_define_type_id, g_define_type_id);
7255+    }
7256+
7257+  return static_g_define_type_id;
7258+}
7259+/* enumerations from "../gio/gresolver.h" */
7260+GType
7261+g_resolver_name_lookup_flags_get_type (void)
7262+{
7263+  static gsize static_g_define_type_id = 0;
7264+
7265+  if (g_once_init_enter (&static_g_define_type_id))
7266+    {
7267+      static const GFlagsValue values[] = {
7268+        { G_RESOLVER_NAME_LOOKUP_FLAGS_DEFAULT, "G_RESOLVER_NAME_LOOKUP_FLAGS_DEFAULT", "default" },
7269+        { G_RESOLVER_NAME_LOOKUP_FLAGS_IPV4_ONLY, "G_RESOLVER_NAME_LOOKUP_FLAGS_IPV4_ONLY", "ipv4-only" },
7270+        { G_RESOLVER_NAME_LOOKUP_FLAGS_IPV6_ONLY, "G_RESOLVER_NAME_LOOKUP_FLAGS_IPV6_ONLY", "ipv6-only" },
7271+        { 0, NULL, NULL }
7272+      };
7273+      GType g_define_type_id =
7274+        g_flags_register_static (g_intern_static_string ("GResolverNameLookupFlags"), values);
7275+      g_once_init_leave (&static_g_define_type_id, g_define_type_id);
7276+    }
7277+
7278+  return static_g_define_type_id;
7279+}
7280+/* enumerations from "../gio/gsettings.h" */
7281+GType
7282+g_settings_bind_flags_get_type (void)
7283+{
7284+  static gsize static_g_define_type_id = 0;
7285+
7286+  if (g_once_init_enter (&static_g_define_type_id))
7287+    {
7288+      static const GFlagsValue values[] = {
7289+        { G_SETTINGS_BIND_DEFAULT, "G_SETTINGS_BIND_DEFAULT", "default" },
7290+        { G_SETTINGS_BIND_GET, "G_SETTINGS_BIND_GET", "get" },
7291+        { G_SETTINGS_BIND_SET, "G_SETTINGS_BIND_SET", "set" },
7292+        { G_SETTINGS_BIND_NO_SENSITIVITY, "G_SETTINGS_BIND_NO_SENSITIVITY", "no-sensitivity" },
7293+        { G_SETTINGS_BIND_GET_NO_CHANGES, "G_SETTINGS_BIND_GET_NO_CHANGES", "get-no-changes" },
7294+        { G_SETTINGS_BIND_INVERT_BOOLEAN, "G_SETTINGS_BIND_INVERT_BOOLEAN", "invert-boolean" },
7295+        { 0, NULL, NULL }
7296+      };
7297+      GType g_define_type_id =
7298+        g_flags_register_static (g_intern_static_string ("GSettingsBindFlags"), values);
7299+      g_once_init_leave (&static_g_define_type_id, g_define_type_id);
7300+    }
7301+
7302+  return static_g_define_type_id;
7303+}
7304+
7305+/* Generated data ends here */
7306+
7307diff --git a/gio/gioenumtypes.h b/gio/gioenumtypes.h
7308new file mode 100644
7309index 0000000..dd4e2c1
7310--- /dev/null
7311+++ b/gio/gioenumtypes.h
7312@@ -0,0 +1,185 @@
7313+
7314+/* This file is generated by glib-mkenums, do not modify it. This code is licensed under the same license as the containing project. Note that it links to GLib, so must comply with the LGPL linking clauses. */
7315+
7316+#ifndef __GIO_ENUM_TYPES_H__
7317+#define __GIO_ENUM_TYPES_H__
7318+
7319+#include <glib-object.h>
7320+
7321+G_BEGIN_DECLS
7322+
7323+/* enumerations from "../gio/gioenums.h" */
7324+GLIB_AVAILABLE_IN_ALL GType g_app_info_create_flags_get_type (void) G_GNUC_CONST;
7325+#define G_TYPE_APP_INFO_CREATE_FLAGS (g_app_info_create_flags_get_type ())
7326+GLIB_AVAILABLE_IN_ALL GType g_converter_flags_get_type (void) G_GNUC_CONST;
7327+#define G_TYPE_CONVERTER_FLAGS (g_converter_flags_get_type ())
7328+GLIB_AVAILABLE_IN_ALL GType g_converter_result_get_type (void) G_GNUC_CONST;
7329+#define G_TYPE_CONVERTER_RESULT (g_converter_result_get_type ())
7330+GLIB_AVAILABLE_IN_ALL GType g_data_stream_byte_order_get_type (void) G_GNUC_CONST;
7331+#define G_TYPE_DATA_STREAM_BYTE_ORDER (g_data_stream_byte_order_get_type ())
7332+GLIB_AVAILABLE_IN_ALL GType g_data_stream_newline_type_get_type (void) G_GNUC_CONST;
7333+#define G_TYPE_DATA_STREAM_NEWLINE_TYPE (g_data_stream_newline_type_get_type ())
7334+GLIB_AVAILABLE_IN_ALL GType g_file_attribute_type_get_type (void) G_GNUC_CONST;
7335+#define G_TYPE_FILE_ATTRIBUTE_TYPE (g_file_attribute_type_get_type ())
7336+GLIB_AVAILABLE_IN_ALL GType g_file_attribute_info_flags_get_type (void) G_GNUC_CONST;
7337+#define G_TYPE_FILE_ATTRIBUTE_INFO_FLAGS (g_file_attribute_info_flags_get_type ())
7338+GLIB_AVAILABLE_IN_ALL GType g_file_attribute_status_get_type (void) G_GNUC_CONST;
7339+#define G_TYPE_FILE_ATTRIBUTE_STATUS (g_file_attribute_status_get_type ())
7340+GLIB_AVAILABLE_IN_ALL GType g_file_query_info_flags_get_type (void) G_GNUC_CONST;
7341+#define G_TYPE_FILE_QUERY_INFO_FLAGS (g_file_query_info_flags_get_type ())
7342+GLIB_AVAILABLE_IN_ALL GType g_file_create_flags_get_type (void) G_GNUC_CONST;
7343+#define G_TYPE_FILE_CREATE_FLAGS (g_file_create_flags_get_type ())
7344+GLIB_AVAILABLE_IN_ALL GType g_file_measure_flags_get_type (void) G_GNUC_CONST;
7345+#define G_TYPE_FILE_MEASURE_FLAGS (g_file_measure_flags_get_type ())
7346+GLIB_AVAILABLE_IN_ALL GType g_mount_mount_flags_get_type (void) G_GNUC_CONST;
7347+#define G_TYPE_MOUNT_MOUNT_FLAGS (g_mount_mount_flags_get_type ())
7348+GLIB_AVAILABLE_IN_ALL GType g_mount_unmount_flags_get_type (void) G_GNUC_CONST;
7349+#define G_TYPE_MOUNT_UNMOUNT_FLAGS (g_mount_unmount_flags_get_type ())
7350+GLIB_AVAILABLE_IN_ALL GType g_drive_start_flags_get_type (void) G_GNUC_CONST;
7351+#define G_TYPE_DRIVE_START_FLAGS (g_drive_start_flags_get_type ())
7352+GLIB_AVAILABLE_IN_ALL GType g_drive_start_stop_type_get_type (void) G_GNUC_CONST;
7353+#define G_TYPE_DRIVE_START_STOP_TYPE (g_drive_start_stop_type_get_type ())
7354+GLIB_AVAILABLE_IN_ALL GType g_file_copy_flags_get_type (void) G_GNUC_CONST;
7355+#define G_TYPE_FILE_COPY_FLAGS (g_file_copy_flags_get_type ())
7356+GLIB_AVAILABLE_IN_ALL GType g_file_monitor_flags_get_type (void) G_GNUC_CONST;
7357+#define G_TYPE_FILE_MONITOR_FLAGS (g_file_monitor_flags_get_type ())
7358+GLIB_AVAILABLE_IN_ALL GType g_file_type_get_type (void) G_GNUC_CONST;
7359+#define G_TYPE_FILE_TYPE (g_file_type_get_type ())
7360+GLIB_AVAILABLE_IN_ALL GType g_filesystem_preview_type_get_type (void) G_GNUC_CONST;
7361+#define G_TYPE_FILESYSTEM_PREVIEW_TYPE (g_filesystem_preview_type_get_type ())
7362+GLIB_AVAILABLE_IN_ALL GType g_file_monitor_event_get_type (void) G_GNUC_CONST;
7363+#define G_TYPE_FILE_MONITOR_EVENT (g_file_monitor_event_get_type ())
7364+GLIB_AVAILABLE_IN_ALL GType g_io_error_enum_get_type (void) G_GNUC_CONST;
7365+#define G_TYPE_IO_ERROR_ENUM (g_io_error_enum_get_type ())
7366+GLIB_AVAILABLE_IN_ALL GType g_ask_password_flags_get_type (void) G_GNUC_CONST;
7367+#define G_TYPE_ASK_PASSWORD_FLAGS (g_ask_password_flags_get_type ())
7368+GLIB_AVAILABLE_IN_ALL GType g_password_save_get_type (void) G_GNUC_CONST;
7369+#define G_TYPE_PASSWORD_SAVE (g_password_save_get_type ())
7370+GLIB_AVAILABLE_IN_ALL GType g_mount_operation_result_get_type (void) G_GNUC_CONST;
7371+#define G_TYPE_MOUNT_OPERATION_RESULT (g_mount_operation_result_get_type ())
7372+GLIB_AVAILABLE_IN_ALL GType g_output_stream_splice_flags_get_type (void) G_GNUC_CONST;
7373+#define G_TYPE_OUTPUT_STREAM_SPLICE_FLAGS (g_output_stream_splice_flags_get_type ())
7374+GLIB_AVAILABLE_IN_ALL GType g_io_stream_splice_flags_get_type (void) G_GNUC_CONST;
7375+#define G_TYPE_IO_STREAM_SPLICE_FLAGS (g_io_stream_splice_flags_get_type ())
7376+GLIB_AVAILABLE_IN_ALL GType g_emblem_origin_get_type (void) G_GNUC_CONST;
7377+#define G_TYPE_EMBLEM_ORIGIN (g_emblem_origin_get_type ())
7378+GLIB_AVAILABLE_IN_ALL GType g_resolver_error_get_type (void) G_GNUC_CONST;
7379+#define G_TYPE_RESOLVER_ERROR (g_resolver_error_get_type ())
7380+GLIB_AVAILABLE_IN_ALL GType g_resolver_record_type_get_type (void) G_GNUC_CONST;
7381+#define G_TYPE_RESOLVER_RECORD_TYPE (g_resolver_record_type_get_type ())
7382+GLIB_AVAILABLE_IN_ALL GType g_resource_error_get_type (void) G_GNUC_CONST;
7383+#define G_TYPE_RESOURCE_ERROR (g_resource_error_get_type ())
7384+GLIB_AVAILABLE_IN_ALL GType g_resource_flags_get_type (void) G_GNUC_CONST;
7385+#define G_TYPE_RESOURCE_FLAGS (g_resource_flags_get_type ())
7386+GLIB_AVAILABLE_IN_ALL GType g_resource_lookup_flags_get_type (void) G_GNUC_CONST;
7387+#define G_TYPE_RESOURCE_LOOKUP_FLAGS (g_resource_lookup_flags_get_type ())
7388+GLIB_AVAILABLE_IN_ALL GType g_socket_family_get_type (void) G_GNUC_CONST;
7389+#define G_TYPE_SOCKET_FAMILY (g_socket_family_get_type ())
7390+GLIB_AVAILABLE_IN_ALL GType g_socket_type_get_type (void) G_GNUC_CONST;
7391+#define G_TYPE_SOCKET_TYPE (g_socket_type_get_type ())
7392+GLIB_AVAILABLE_IN_ALL GType g_socket_msg_flags_get_type (void) G_GNUC_CONST;
7393+#define G_TYPE_SOCKET_MSG_FLAGS (g_socket_msg_flags_get_type ())
7394+GLIB_AVAILABLE_IN_ALL GType g_socket_protocol_get_type (void) G_GNUC_CONST;
7395+#define G_TYPE_SOCKET_PROTOCOL (g_socket_protocol_get_type ())
7396+GLIB_AVAILABLE_IN_ALL GType g_zlib_compressor_format_get_type (void) G_GNUC_CONST;
7397+#define G_TYPE_ZLIB_COMPRESSOR_FORMAT (g_zlib_compressor_format_get_type ())
7398+GLIB_AVAILABLE_IN_ALL GType g_unix_socket_address_type_get_type (void) G_GNUC_CONST;
7399+#define G_TYPE_UNIX_SOCKET_ADDRESS_TYPE (g_unix_socket_address_type_get_type ())
7400+GLIB_AVAILABLE_IN_ALL GType g_bus_type_get_type (void) G_GNUC_CONST;
7401+#define G_TYPE_BUS_TYPE (g_bus_type_get_type ())
7402+GLIB_AVAILABLE_IN_ALL GType g_bus_name_owner_flags_get_type (void) G_GNUC_CONST;
7403+#define G_TYPE_BUS_NAME_OWNER_FLAGS (g_bus_name_owner_flags_get_type ())
7404+GLIB_AVAILABLE_IN_ALL GType g_bus_name_watcher_flags_get_type (void) G_GNUC_CONST;
7405+#define G_TYPE_BUS_NAME_WATCHER_FLAGS (g_bus_name_watcher_flags_get_type ())
7406+GLIB_AVAILABLE_IN_ALL GType g_dbus_proxy_flags_get_type (void) G_GNUC_CONST;
7407+#define G_TYPE_DBUS_PROXY_FLAGS (g_dbus_proxy_flags_get_type ())
7408+GLIB_AVAILABLE_IN_ALL GType g_dbus_error_get_type (void) G_GNUC_CONST;
7409+#define G_TYPE_DBUS_ERROR (g_dbus_error_get_type ())
7410+GLIB_AVAILABLE_IN_ALL GType g_dbus_connection_flags_get_type (void) G_GNUC_CONST;
7411+#define G_TYPE_DBUS_CONNECTION_FLAGS (g_dbus_connection_flags_get_type ())
7412+GLIB_AVAILABLE_IN_ALL GType g_dbus_capability_flags_get_type (void) G_GNUC_CONST;
7413+#define G_TYPE_DBUS_CAPABILITY_FLAGS (g_dbus_capability_flags_get_type ())
7414+GLIB_AVAILABLE_IN_ALL GType g_dbus_call_flags_get_type (void) G_GNUC_CONST;
7415+#define G_TYPE_DBUS_CALL_FLAGS (g_dbus_call_flags_get_type ())
7416+GLIB_AVAILABLE_IN_ALL GType g_dbus_message_type_get_type (void) G_GNUC_CONST;
7417+#define G_TYPE_DBUS_MESSAGE_TYPE (g_dbus_message_type_get_type ())
7418+GLIB_AVAILABLE_IN_ALL GType g_dbus_message_flags_get_type (void) G_GNUC_CONST;
7419+#define G_TYPE_DBUS_MESSAGE_FLAGS (g_dbus_message_flags_get_type ())
7420+GLIB_AVAILABLE_IN_ALL GType g_dbus_message_header_field_get_type (void) G_GNUC_CONST;
7421+#define G_TYPE_DBUS_MESSAGE_HEADER_FIELD (g_dbus_message_header_field_get_type ())
7422+GLIB_AVAILABLE_IN_ALL GType g_dbus_property_info_flags_get_type (void) G_GNUC_CONST;
7423+#define G_TYPE_DBUS_PROPERTY_INFO_FLAGS (g_dbus_property_info_flags_get_type ())
7424+GLIB_AVAILABLE_IN_ALL GType g_dbus_subtree_flags_get_type (void) G_GNUC_CONST;
7425+#define G_TYPE_DBUS_SUBTREE_FLAGS (g_dbus_subtree_flags_get_type ())
7426+GLIB_AVAILABLE_IN_ALL GType g_dbus_server_flags_get_type (void) G_GNUC_CONST;
7427+#define G_TYPE_DBUS_SERVER_FLAGS (g_dbus_server_flags_get_type ())
7428+GLIB_AVAILABLE_IN_ALL GType g_dbus_signal_flags_get_type (void) G_GNUC_CONST;
7429+#define G_TYPE_DBUS_SIGNAL_FLAGS (g_dbus_signal_flags_get_type ())
7430+GLIB_AVAILABLE_IN_ALL GType g_dbus_send_message_flags_get_type (void) G_GNUC_CONST;
7431+#define G_TYPE_DBUS_SEND_MESSAGE_FLAGS (g_dbus_send_message_flags_get_type ())
7432+GLIB_AVAILABLE_IN_ALL GType g_credentials_type_get_type (void) G_GNUC_CONST;
7433+#define G_TYPE_CREDENTIALS_TYPE (g_credentials_type_get_type ())
7434+GLIB_AVAILABLE_IN_ALL GType g_dbus_message_byte_order_get_type (void) G_GNUC_CONST;
7435+#define G_TYPE_DBUS_MESSAGE_BYTE_ORDER (g_dbus_message_byte_order_get_type ())
7436+GLIB_AVAILABLE_IN_ALL GType g_application_flags_get_type (void) G_GNUC_CONST;
7437+#define G_TYPE_APPLICATION_FLAGS (g_application_flags_get_type ())
7438+GLIB_AVAILABLE_IN_ALL GType g_tls_error_get_type (void) G_GNUC_CONST;
7439+#define G_TYPE_TLS_ERROR (g_tls_error_get_type ())
7440+GLIB_AVAILABLE_IN_ALL GType g_tls_certificate_flags_get_type (void) G_GNUC_CONST;
7441+#define G_TYPE_TLS_CERTIFICATE_FLAGS (g_tls_certificate_flags_get_type ())
7442+GLIB_AVAILABLE_IN_ALL GType g_tls_authentication_mode_get_type (void) G_GNUC_CONST;
7443+#define G_TYPE_TLS_AUTHENTICATION_MODE (g_tls_authentication_mode_get_type ())
7444+GLIB_AVAILABLE_IN_ALL GType g_tls_channel_binding_type_get_type (void) G_GNUC_CONST;
7445+#define G_TYPE_TLS_CHANNEL_BINDING_TYPE (g_tls_channel_binding_type_get_type ())
7446+GLIB_AVAILABLE_IN_ALL GType g_tls_channel_binding_error_get_type (void) G_GNUC_CONST;
7447+#define G_TYPE_TLS_CHANNEL_BINDING_ERROR (g_tls_channel_binding_error_get_type ())
7448+GLIB_AVAILABLE_IN_ALL GType g_tls_rehandshake_mode_get_type (void) G_GNUC_CONST;
7449+#define G_TYPE_TLS_REHANDSHAKE_MODE (g_tls_rehandshake_mode_get_type ())
7450+GLIB_AVAILABLE_IN_ALL GType g_tls_password_flags_get_type (void) G_GNUC_CONST;
7451+#define G_TYPE_TLS_PASSWORD_FLAGS (g_tls_password_flags_get_type ())
7452+GLIB_AVAILABLE_IN_ALL GType g_tls_interaction_result_get_type (void) G_GNUC_CONST;
7453+#define G_TYPE_TLS_INTERACTION_RESULT (g_tls_interaction_result_get_type ())
7454+GLIB_AVAILABLE_IN_ALL GType g_dbus_interface_skeleton_flags_get_type (void) G_GNUC_CONST;
7455+#define G_TYPE_DBUS_INTERFACE_SKELETON_FLAGS (g_dbus_interface_skeleton_flags_get_type ())
7456+GLIB_AVAILABLE_IN_ALL GType g_dbus_object_manager_client_flags_get_type (void) G_GNUC_CONST;
7457+#define G_TYPE_DBUS_OBJECT_MANAGER_CLIENT_FLAGS (g_dbus_object_manager_client_flags_get_type ())
7458+GLIB_AVAILABLE_IN_ALL GType g_tls_database_verify_flags_get_type (void) G_GNUC_CONST;
7459+#define G_TYPE_TLS_DATABASE_VERIFY_FLAGS (g_tls_database_verify_flags_get_type ())
7460+GLIB_AVAILABLE_IN_ALL GType g_tls_database_lookup_flags_get_type (void) G_GNUC_CONST;
7461+#define G_TYPE_TLS_DATABASE_LOOKUP_FLAGS (g_tls_database_lookup_flags_get_type ())
7462+GLIB_AVAILABLE_IN_ALL GType g_tls_certificate_request_flags_get_type (void) G_GNUC_CONST;
7463+#define G_TYPE_TLS_CERTIFICATE_REQUEST_FLAGS (g_tls_certificate_request_flags_get_type ())
7464+GLIB_AVAILABLE_IN_ALL GType g_tls_protocol_version_get_type (void) G_GNUC_CONST;
7465+#define G_TYPE_TLS_PROTOCOL_VERSION (g_tls_protocol_version_get_type ())
7466+GLIB_AVAILABLE_IN_ALL GType g_io_module_scope_flags_get_type (void) G_GNUC_CONST;
7467+#define G_TYPE_IO_MODULE_SCOPE_FLAGS (g_io_module_scope_flags_get_type ())
7468+GLIB_AVAILABLE_IN_ALL GType g_socket_client_event_get_type (void) G_GNUC_CONST;
7469+#define G_TYPE_SOCKET_CLIENT_EVENT (g_socket_client_event_get_type ())
7470+GLIB_AVAILABLE_IN_ALL GType g_socket_listener_event_get_type (void) G_GNUC_CONST;
7471+#define G_TYPE_SOCKET_LISTENER_EVENT (g_socket_listener_event_get_type ())
7472+GLIB_AVAILABLE_IN_ALL GType g_test_dbus_flags_get_type (void) G_GNUC_CONST;
7473+#define G_TYPE_TEST_DBUS_FLAGS (g_test_dbus_flags_get_type ())
7474+GLIB_AVAILABLE_IN_ALL GType g_subprocess_flags_get_type (void) G_GNUC_CONST;
7475+#define G_TYPE_SUBPROCESS_FLAGS (g_subprocess_flags_get_type ())
7476+GLIB_AVAILABLE_IN_ALL GType g_notification_priority_get_type (void) G_GNUC_CONST;
7477+#define G_TYPE_NOTIFICATION_PRIORITY (g_notification_priority_get_type ())
7478+GLIB_AVAILABLE_IN_ALL GType g_network_connectivity_get_type (void) G_GNUC_CONST;
7479+#define G_TYPE_NETWORK_CONNECTIVITY (g_network_connectivity_get_type ())
7480+GLIB_AVAILABLE_IN_ALL GType g_pollable_return_get_type (void) G_GNUC_CONST;
7481+#define G_TYPE_POLLABLE_RETURN (g_pollable_return_get_type ())
7482+GLIB_AVAILABLE_IN_ALL GType g_memory_monitor_warning_level_get_type (void) G_GNUC_CONST;
7483+#define G_TYPE_MEMORY_MONITOR_WARNING_LEVEL (g_memory_monitor_warning_level_get_type ())
7484+
7485+/* enumerations from "../gio/gresolver.h" */
7486+GLIB_AVAILABLE_IN_ALL GType g_resolver_name_lookup_flags_get_type (void) G_GNUC_CONST;
7487+#define G_TYPE_RESOLVER_NAME_LOOKUP_FLAGS (g_resolver_name_lookup_flags_get_type ())
7488+
7489+/* enumerations from "../gio/gsettings.h" */
7490+GLIB_AVAILABLE_IN_ALL GType g_settings_bind_flags_get_type (void) G_GNUC_CONST;
7491+#define G_TYPE_SETTINGS_BIND_FLAGS (g_settings_bind_flags_get_type ())
7492+G_END_DECLS
7493+
7494+#endif /* __GIO_ENUM_TYPES_H__ */
7495+
7496+/* Generated data ends here */
7497+
7498diff --git a/gio/gnetworking.h b/gio/gnetworking.h
7499new file mode 100644
7500index 0000000..1f1124a
7501--- /dev/null
7502+++ b/gio/gnetworking.h
7503@@ -0,0 +1,78 @@
7504+/* GIO - GLib Input, Output and Streaming Library
7505+ *
7506+ * Copyright (C) 2008-2011 Red Hat, Inc.
7507+ *
7508+ * This library is free software; you can redistribute it and/or
7509+ * modify it under the terms of the GNU Lesser General Public
7510+ * License as published by the Free Software Foundation; either
7511+ * version 2.1 of the License, or (at your option) any later version.
7512+ *
7513+ * This library is distributed in the hope that it will be useful,
7514+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
7515+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
7516+ * Lesser General Public License for more details.
7517+ *
7518+ * You should have received a copy of the GNU Lesser General Public
7519+ * License along with this library; if not, see <http://www.gnu.org/licenses/>.
7520+ */
7521+
7522+#ifndef __G_NETWORKING_H__
7523+#define __G_NETWORKING_H__
7524+
7525+#include <glib.h>
7526+
7527+#ifdef G_OS_WIN32
7528+#include <winsock2.h>
7529+#include <ws2tcpip.h>
7530+#include <windns.h>
7531+#include <mswsock.h>
7532+#include <wspiapi.h>
7533+#include <iphlpapi.h>
7534+#undef interface
7535+
7536+#else /* !G_OS_WIN32 */
7537+
7538+#include <sys/types.h>
7539+
7540+#include <netdb.h>
7541+#include <netinet/in.h>
7542+#include <netinet/tcp.h>
7543+#include <resolv.h>
7544+#include <sys/socket.h>
7545+#include <sys/un.h>
7546+#include <net/if.h>
7547+
7548+#include <arpa/inet.h>
7549+#include <arpa/nameser.h>
7550+
7551+
7552+#ifndef T_SRV
7553+#define T_SRV 33
7554+#endif
7555+
7556+#ifndef _PATH_RESCONF
7557+#define _PATH_RESCONF "/etc/resolv.conf"
7558+#endif
7559+
7560+#ifndef CMSG_LEN
7561+/* CMSG_LEN and CMSG_SPACE are defined by RFC 2292, but missing on
7562+ * some older platforms.
7563+ */
7564+#define CMSG_LEN(len) ((size_t)CMSG_DATA((struct cmsghdr *)NULL) + (len))
7565+
7566+/* CMSG_SPACE must add at least as much padding as CMSG_NXTHDR()
7567+ * adds. We overestimate here.
7568+ */
7569+#define GLIB_ALIGN_TO_SIZEOF(len, obj) (((len) + sizeof (obj) - 1) & ~(sizeof (obj) - 1))
7570+#define CMSG_SPACE(len) GLIB_ALIGN_TO_SIZEOF (CMSG_LEN (len), struct cmsghdr)
7571+#endif
7572+#endif
7573+
7574+G_BEGIN_DECLS
7575+
7576+GLIB_AVAILABLE_IN_2_36
7577+void g_networking_init (void);
7578+
7579+G_END_DECLS
7580+
7581+#endif /* __G_NETWORKING_H__ */
7582diff --git a/gio/xdp-dbus.c b/gio/xdp-dbus.c
7583new file mode 100644
7584index 0000000..3e9dbff
7585--- /dev/null
7586+++ b/gio/xdp-dbus.c
7587@@ -0,0 +1,7909 @@
7588+/*
7589+ * This file is generated by gdbus-codegen, do not modify it.
7590+ *
7591+ * The license of this code is the same as for the D-Bus interface description
7592+ * it was derived from. Note that it links to GLib, so must comply with the
7593+ * LGPL linking clauses.
7594+ */
7595+
7596+#ifdef HAVE_CONFIG_H
7597+#  include "config.h"
7598+#endif
7599+
7600+#include "xdp-dbus.h"
7601+
7602+#include <string.h>
7603+#ifdef G_OS_UNIX
7604+#  include <gio/gunixfdlist.h>
7605+#endif
7606+
7607+typedef struct
7608+{
7609+  GDBusArgInfo parent_struct;
7610+  gboolean use_gvariant;
7611+} _ExtendedGDBusArgInfo;
7612+
7613+typedef struct
7614+{
7615+  GDBusMethodInfo parent_struct;
7616+  const gchar *signal_name;
7617+  gboolean pass_fdlist;
7618+} _ExtendedGDBusMethodInfo;
7619+
7620+typedef struct
7621+{
7622+  GDBusSignalInfo parent_struct;
7623+  const gchar *signal_name;
7624+} _ExtendedGDBusSignalInfo;
7625+
7626+typedef struct
7627+{
7628+  GDBusPropertyInfo parent_struct;
7629+  const gchar *hyphen_name;
7630+  guint use_gvariant : 1;
7631+  guint emits_changed_signal : 1;
7632+} _ExtendedGDBusPropertyInfo;
7633+
7634+typedef struct
7635+{
7636+  GDBusInterfaceInfo parent_struct;
7637+  const gchar *hyphen_name;
7638+} _ExtendedGDBusInterfaceInfo;
7639+
7640+typedef struct
7641+{
7642+  const _ExtendedGDBusPropertyInfo *info;
7643+  guint prop_id;
7644+  GValue orig_value; /* the value before the change */
7645+} ChangedProperty;
7646+
7647+static void
7648+_changed_property_free (ChangedProperty *data)
7649+{
7650+  g_value_unset (&data->orig_value);
7651+  g_free (data);
7652+}
7653+
7654+static gboolean
7655+_g_strv_equal0 (gchar **a, gchar **b)
7656+{
7657+  gboolean ret = FALSE;
7658+  guint n;
7659+  if (a == NULL && b == NULL)
7660+    {
7661+      ret = TRUE;
7662+      goto out;
7663+    }
7664+  if (a == NULL || b == NULL)
7665+    goto out;
7666+  if (g_strv_length (a) != g_strv_length (b))
7667+    goto out;
7668+  for (n = 0; a[n] != NULL; n++)
7669+    if (g_strcmp0 (a[n], b[n]) != 0)
7670+      goto out;
7671+  ret = TRUE;
7672+out:
7673+  return ret;
7674+}
7675+
7676+static gboolean
7677+_g_variant_equal0 (GVariant *a, GVariant *b)
7678+{
7679+  gboolean ret = FALSE;
7680+  if (a == NULL && b == NULL)
7681+    {
7682+      ret = TRUE;
7683+      goto out;
7684+    }
7685+  if (a == NULL || b == NULL)
7686+    goto out;
7687+  ret = g_variant_equal (a, b);
7688+out:
7689+  return ret;
7690+}
7691+
7692+G_GNUC_UNUSED static gboolean
7693+_g_value_equal (const GValue *a, const GValue *b)
7694+{
7695+  gboolean ret = FALSE;
7696+  g_assert (G_VALUE_TYPE (a) == G_VALUE_TYPE (b));
7697+  switch (G_VALUE_TYPE (a))
7698+    {
7699+      case G_TYPE_BOOLEAN:
7700+        ret = (g_value_get_boolean (a) == g_value_get_boolean (b));
7701+        break;
7702+      case G_TYPE_UCHAR:
7703+        ret = (g_value_get_uchar (a) == g_value_get_uchar (b));
7704+        break;
7705+      case G_TYPE_INT:
7706+        ret = (g_value_get_int (a) == g_value_get_int (b));
7707+        break;
7708+      case G_TYPE_UINT:
7709+        ret = (g_value_get_uint (a) == g_value_get_uint (b));
7710+        break;
7711+      case G_TYPE_INT64:
7712+        ret = (g_value_get_int64 (a) == g_value_get_int64 (b));
7713+        break;
7714+      case G_TYPE_UINT64:
7715+        ret = (g_value_get_uint64 (a) == g_value_get_uint64 (b));
7716+        break;
7717+      case G_TYPE_DOUBLE:
7718+        {
7719+          /* Avoid -Wfloat-equal warnings by doing a direct bit compare */
7720+          gdouble da = g_value_get_double (a);
7721+          gdouble db = g_value_get_double (b);
7722+          ret = memcmp (&da, &db, sizeof (gdouble)) == 0;
7723+        }
7724+        break;
7725+      case G_TYPE_STRING:
7726+        ret = (g_strcmp0 (g_value_get_string (a), g_value_get_string (b)) == 0);
7727+        break;
7728+      case G_TYPE_VARIANT:
7729+        ret = _g_variant_equal0 (g_value_get_variant (a), g_value_get_variant (b));
7730+        break;
7731+      default:
7732+        if (G_VALUE_TYPE (a) == G_TYPE_STRV)
7733+          ret = _g_strv_equal0 (g_value_get_boxed (a), g_value_get_boxed (b));
7734+        else
7735+          g_critical ("_g_value_equal() does not handle type %s", g_type_name (G_VALUE_TYPE (a)));
7736+        break;
7737+    }
7738+  return ret;
7739+}
7740+
7741+/* ------------------------------------------------------------------------
7742+ * Code for interface org.freedesktop.portal.Documents
7743+ * ------------------------------------------------------------------------
7744+ */
7745+
7746+/**
7747+ * SECTION:GXdpDocuments
7748+ * @title: GXdpDocuments
7749+ * @short_description: Generated C code for the org.freedesktop.portal.Documents D-Bus interface
7750+ *
7751+ * This section contains code for working with the <link linkend="gdbus-interface-org-freedesktop-portal-Documents.top_of_page">org.freedesktop.portal.Documents</link> D-Bus interface in C.
7752+ */
7753+
7754+/* ---- Introspection data for org.freedesktop.portal.Documents ---- */
7755+
7756+static const _ExtendedGDBusArgInfo _gxdp_documents_method_info_get_mount_point_OUT_ARG_path =
7757+{
7758+  {
7759+    -1,
7760+    (gchar *) "path",
7761+    (gchar *) "ay",
7762+    NULL
7763+  },
7764+  FALSE
7765+};
7766+
7767+static const GDBusArgInfo * const _gxdp_documents_method_info_get_mount_point_OUT_ARG_pointers[] =
7768+{
7769+  &_gxdp_documents_method_info_get_mount_point_OUT_ARG_path.parent_struct,
7770+  NULL
7771+};
7772+
7773+static const _ExtendedGDBusMethodInfo _gxdp_documents_method_info_get_mount_point =
7774+{
7775+  {
7776+    -1,
7777+    (gchar *) "GetMountPoint",
7778+    NULL,
7779+    (GDBusArgInfo **) &_gxdp_documents_method_info_get_mount_point_OUT_ARG_pointers,
7780+    NULL
7781+  },
7782+  "handle-get-mount-point",
7783+  FALSE
7784+};
7785+
7786+static const _ExtendedGDBusArgInfo _gxdp_documents_method_info_add_IN_ARG_o_path_fd =
7787+{
7788+  {
7789+    -1,
7790+    (gchar *) "o_path_fd",
7791+    (gchar *) "h",
7792+    NULL
7793+  },
7794+  FALSE
7795+};
7796+
7797+static const _ExtendedGDBusArgInfo _gxdp_documents_method_info_add_IN_ARG_reuse_existing =
7798+{
7799+  {
7800+    -1,
7801+    (gchar *) "reuse_existing",
7802+    (gchar *) "b",
7803+    NULL
7804+  },
7805+  FALSE
7806+};
7807+
7808+static const _ExtendedGDBusArgInfo _gxdp_documents_method_info_add_IN_ARG_persistent =
7809+{
7810+  {
7811+    -1,
7812+    (gchar *) "persistent",
7813+    (gchar *) "b",
7814+    NULL
7815+  },
7816+  FALSE
7817+};
7818+
7819+static const GDBusArgInfo * const _gxdp_documents_method_info_add_IN_ARG_pointers[] =
7820+{
7821+  &_gxdp_documents_method_info_add_IN_ARG_o_path_fd.parent_struct,
7822+  &_gxdp_documents_method_info_add_IN_ARG_reuse_existing.parent_struct,
7823+  &_gxdp_documents_method_info_add_IN_ARG_persistent.parent_struct,
7824+  NULL
7825+};
7826+
7827+static const _ExtendedGDBusArgInfo _gxdp_documents_method_info_add_OUT_ARG_doc_id =
7828+{
7829+  {
7830+    -1,
7831+    (gchar *) "doc_id",
7832+    (gchar *) "s",
7833+    NULL
7834+  },
7835+  FALSE
7836+};
7837+
7838+static const GDBusArgInfo * const _gxdp_documents_method_info_add_OUT_ARG_pointers[] =
7839+{
7840+  &_gxdp_documents_method_info_add_OUT_ARG_doc_id.parent_struct,
7841+  NULL
7842+};
7843+
7844+static const _ExtendedGDBusMethodInfo _gxdp_documents_method_info_add =
7845+{
7846+  {
7847+    -1,
7848+    (gchar *) "Add",
7849+    (GDBusArgInfo **) &_gxdp_documents_method_info_add_IN_ARG_pointers,
7850+    (GDBusArgInfo **) &_gxdp_documents_method_info_add_OUT_ARG_pointers,
7851+    NULL
7852+  },
7853+  "handle-add",
7854+  TRUE
7855+};
7856+
7857+static const _ExtendedGDBusArgInfo _gxdp_documents_method_info_add_named_IN_ARG_o_path_parent_fd =
7858+{
7859+  {
7860+    -1,
7861+    (gchar *) "o_path_parent_fd",
7862+    (gchar *) "h",
7863+    NULL
7864+  },
7865+  FALSE
7866+};
7867+
7868+static const _ExtendedGDBusArgInfo _gxdp_documents_method_info_add_named_IN_ARG_filename =
7869+{
7870+  {
7871+    -1,
7872+    (gchar *) "filename",
7873+    (gchar *) "ay",
7874+    NULL
7875+  },
7876+  FALSE
7877+};
7878+
7879+static const _ExtendedGDBusArgInfo _gxdp_documents_method_info_add_named_IN_ARG_reuse_existing =
7880+{
7881+  {
7882+    -1,
7883+    (gchar *) "reuse_existing",
7884+    (gchar *) "b",
7885+    NULL
7886+  },
7887+  FALSE
7888+};
7889+
7890+static const _ExtendedGDBusArgInfo _gxdp_documents_method_info_add_named_IN_ARG_persistent =
7891+{
7892+  {
7893+    -1,
7894+    (gchar *) "persistent",
7895+    (gchar *) "b",
7896+    NULL
7897+  },
7898+  FALSE
7899+};
7900+
7901+static const GDBusArgInfo * const _gxdp_documents_method_info_add_named_IN_ARG_pointers[] =
7902+{
7903+  &_gxdp_documents_method_info_add_named_IN_ARG_o_path_parent_fd.parent_struct,
7904+  &_gxdp_documents_method_info_add_named_IN_ARG_filename.parent_struct,
7905+  &_gxdp_documents_method_info_add_named_IN_ARG_reuse_existing.parent_struct,
7906+  &_gxdp_documents_method_info_add_named_IN_ARG_persistent.parent_struct,
7907+  NULL
7908+};
7909+
7910+static const _ExtendedGDBusArgInfo _gxdp_documents_method_info_add_named_OUT_ARG_doc_id =
7911+{
7912+  {
7913+    -1,
7914+    (gchar *) "doc_id",
7915+    (gchar *) "s",
7916+    NULL
7917+  },
7918+  FALSE
7919+};
7920+
7921+static const GDBusArgInfo * const _gxdp_documents_method_info_add_named_OUT_ARG_pointers[] =
7922+{
7923+  &_gxdp_documents_method_info_add_named_OUT_ARG_doc_id.parent_struct,
7924+  NULL
7925+};
7926+
7927+static const _ExtendedGDBusMethodInfo _gxdp_documents_method_info_add_named =
7928+{
7929+  {
7930+    -1,
7931+    (gchar *) "AddNamed",
7932+    (GDBusArgInfo **) &_gxdp_documents_method_info_add_named_IN_ARG_pointers,
7933+    (GDBusArgInfo **) &_gxdp_documents_method_info_add_named_OUT_ARG_pointers,
7934+    NULL
7935+  },
7936+  "handle-add-named",
7937+  TRUE
7938+};
7939+
7940+static const _ExtendedGDBusArgInfo _gxdp_documents_method_info_add_full_IN_ARG_o_path_fds =
7941+{
7942+  {
7943+    -1,
7944+    (gchar *) "o_path_fds",
7945+    (gchar *) "ah",
7946+    NULL
7947+  },
7948+  FALSE
7949+};
7950+
7951+static const _ExtendedGDBusArgInfo _gxdp_documents_method_info_add_full_IN_ARG_flags =
7952+{
7953+  {
7954+    -1,
7955+    (gchar *) "flags",
7956+    (gchar *) "u",
7957+    NULL
7958+  },
7959+  FALSE
7960+};
7961+
7962+static const _ExtendedGDBusArgInfo _gxdp_documents_method_info_add_full_IN_ARG_app_id =
7963+{
7964+  {
7965+    -1,
7966+    (gchar *) "app_id",
7967+    (gchar *) "s",
7968+    NULL
7969+  },
7970+  FALSE
7971+};
7972+
7973+static const _ExtendedGDBusArgInfo _gxdp_documents_method_info_add_full_IN_ARG_permissions =
7974+{
7975+  {
7976+    -1,
7977+    (gchar *) "permissions",
7978+    (gchar *) "as",
7979+    NULL
7980+  },
7981+  FALSE
7982+};
7983+
7984+static const GDBusArgInfo * const _gxdp_documents_method_info_add_full_IN_ARG_pointers[] =
7985+{
7986+  &_gxdp_documents_method_info_add_full_IN_ARG_o_path_fds.parent_struct,
7987+  &_gxdp_documents_method_info_add_full_IN_ARG_flags.parent_struct,
7988+  &_gxdp_documents_method_info_add_full_IN_ARG_app_id.parent_struct,
7989+  &_gxdp_documents_method_info_add_full_IN_ARG_permissions.parent_struct,
7990+  NULL
7991+};
7992+
7993+static const _ExtendedGDBusArgInfo _gxdp_documents_method_info_add_full_OUT_ARG_doc_ids =
7994+{
7995+  {
7996+    -1,
7997+    (gchar *) "doc_ids",
7998+    (gchar *) "as",
7999+    NULL
8000+  },
8001+  FALSE
8002+};
8003+
8004+static const _ExtendedGDBusArgInfo _gxdp_documents_method_info_add_full_OUT_ARG_extra_out =
8005+{
8006+  {
8007+    -1,
8008+    (gchar *) "extra_out",
8009+    (gchar *) "a{sv}",
8010+    NULL
8011+  },
8012+  FALSE
8013+};
8014+
8015+static const GDBusArgInfo * const _gxdp_documents_method_info_add_full_OUT_ARG_pointers[] =
8016+{
8017+  &_gxdp_documents_method_info_add_full_OUT_ARG_doc_ids.parent_struct,
8018+  &_gxdp_documents_method_info_add_full_OUT_ARG_extra_out.parent_struct,
8019+  NULL
8020+};
8021+
8022+static const _ExtendedGDBusMethodInfo _gxdp_documents_method_info_add_full =
8023+{
8024+  {
8025+    -1,
8026+    (gchar *) "AddFull",
8027+    (GDBusArgInfo **) &_gxdp_documents_method_info_add_full_IN_ARG_pointers,
8028+    (GDBusArgInfo **) &_gxdp_documents_method_info_add_full_OUT_ARG_pointers,
8029+    NULL
8030+  },
8031+  "handle-add-full",
8032+  TRUE
8033+};
8034+
8035+static const _ExtendedGDBusArgInfo _gxdp_documents_method_info_add_named_full_IN_ARG_o_path_fd =
8036+{
8037+  {
8038+    -1,
8039+    (gchar *) "o_path_fd",
8040+    (gchar *) "h",
8041+    NULL
8042+  },
8043+  FALSE
8044+};
8045+
8046+static const _ExtendedGDBusArgInfo _gxdp_documents_method_info_add_named_full_IN_ARG_filename =
8047+{
8048+  {
8049+    -1,
8050+    (gchar *) "filename",
8051+    (gchar *) "ay",
8052+    NULL
8053+  },
8054+  FALSE
8055+};
8056+
8057+static const _ExtendedGDBusArgInfo _gxdp_documents_method_info_add_named_full_IN_ARG_flags =
8058+{
8059+  {
8060+    -1,
8061+    (gchar *) "flags",
8062+    (gchar *) "u",
8063+    NULL
8064+  },
8065+  FALSE
8066+};
8067+
8068+static const _ExtendedGDBusArgInfo _gxdp_documents_method_info_add_named_full_IN_ARG_app_id =
8069+{
8070+  {
8071+    -1,
8072+    (gchar *) "app_id",
8073+    (gchar *) "s",
8074+    NULL
8075+  },
8076+  FALSE
8077+};
8078+
8079+static const _ExtendedGDBusArgInfo _gxdp_documents_method_info_add_named_full_IN_ARG_permissions =
8080+{
8081+  {
8082+    -1,
8083+    (gchar *) "permissions",
8084+    (gchar *) "as",
8085+    NULL
8086+  },
8087+  FALSE
8088+};
8089+
8090+static const GDBusArgInfo * const _gxdp_documents_method_info_add_named_full_IN_ARG_pointers[] =
8091+{
8092+  &_gxdp_documents_method_info_add_named_full_IN_ARG_o_path_fd.parent_struct,
8093+  &_gxdp_documents_method_info_add_named_full_IN_ARG_filename.parent_struct,
8094+  &_gxdp_documents_method_info_add_named_full_IN_ARG_flags.parent_struct,
8095+  &_gxdp_documents_method_info_add_named_full_IN_ARG_app_id.parent_struct,
8096+  &_gxdp_documents_method_info_add_named_full_IN_ARG_permissions.parent_struct,
8097+  NULL
8098+};
8099+
8100+static const _ExtendedGDBusArgInfo _gxdp_documents_method_info_add_named_full_OUT_ARG_doc_id =
8101+{
8102+  {
8103+    -1,
8104+    (gchar *) "doc_id",
8105+    (gchar *) "s",
8106+    NULL
8107+  },
8108+  FALSE
8109+};
8110+
8111+static const _ExtendedGDBusArgInfo _gxdp_documents_method_info_add_named_full_OUT_ARG_extra_out =
8112+{
8113+  {
8114+    -1,
8115+    (gchar *) "extra_out",
8116+    (gchar *) "a{sv}",
8117+    NULL
8118+  },
8119+  FALSE
8120+};
8121+
8122+static const GDBusArgInfo * const _gxdp_documents_method_info_add_named_full_OUT_ARG_pointers[] =
8123+{
8124+  &_gxdp_documents_method_info_add_named_full_OUT_ARG_doc_id.parent_struct,
8125+  &_gxdp_documents_method_info_add_named_full_OUT_ARG_extra_out.parent_struct,
8126+  NULL
8127+};
8128+
8129+static const _ExtendedGDBusMethodInfo _gxdp_documents_method_info_add_named_full =
8130+{
8131+  {
8132+    -1,
8133+    (gchar *) "AddNamedFull",
8134+    (GDBusArgInfo **) &_gxdp_documents_method_info_add_named_full_IN_ARG_pointers,
8135+    (GDBusArgInfo **) &_gxdp_documents_method_info_add_named_full_OUT_ARG_pointers,
8136+    NULL
8137+  },
8138+  "handle-add-named-full",
8139+  TRUE
8140+};
8141+
8142+static const _ExtendedGDBusArgInfo _gxdp_documents_method_info_grant_permissions_IN_ARG_doc_id =
8143+{
8144+  {
8145+    -1,
8146+    (gchar *) "doc_id",
8147+    (gchar *) "s",
8148+    NULL
8149+  },
8150+  FALSE
8151+};
8152+
8153+static const _ExtendedGDBusArgInfo _gxdp_documents_method_info_grant_permissions_IN_ARG_app_id =
8154+{
8155+  {
8156+    -1,
8157+    (gchar *) "app_id",
8158+    (gchar *) "s",
8159+    NULL
8160+  },
8161+  FALSE
8162+};
8163+
8164+static const _ExtendedGDBusArgInfo _gxdp_documents_method_info_grant_permissions_IN_ARG_permissions =
8165+{
8166+  {
8167+    -1,
8168+    (gchar *) "permissions",
8169+    (gchar *) "as",
8170+    NULL
8171+  },
8172+  FALSE
8173+};
8174+
8175+static const GDBusArgInfo * const _gxdp_documents_method_info_grant_permissions_IN_ARG_pointers[] =
8176+{
8177+  &_gxdp_documents_method_info_grant_permissions_IN_ARG_doc_id.parent_struct,
8178+  &_gxdp_documents_method_info_grant_permissions_IN_ARG_app_id.parent_struct,
8179+  &_gxdp_documents_method_info_grant_permissions_IN_ARG_permissions.parent_struct,
8180+  NULL
8181+};
8182+
8183+static const _ExtendedGDBusMethodInfo _gxdp_documents_method_info_grant_permissions =
8184+{
8185+  {
8186+    -1,
8187+    (gchar *) "GrantPermissions",
8188+    (GDBusArgInfo **) &_gxdp_documents_method_info_grant_permissions_IN_ARG_pointers,
8189+    NULL,
8190+    NULL
8191+  },
8192+  "handle-grant-permissions",
8193+  FALSE
8194+};
8195+
8196+static const _ExtendedGDBusArgInfo _gxdp_documents_method_info_revoke_permissions_IN_ARG_doc_id =
8197+{
8198+  {
8199+    -1,
8200+    (gchar *) "doc_id",
8201+    (gchar *) "s",
8202+    NULL
8203+  },
8204+  FALSE
8205+};
8206+
8207+static const _ExtendedGDBusArgInfo _gxdp_documents_method_info_revoke_permissions_IN_ARG_app_id =
8208+{
8209+  {
8210+    -1,
8211+    (gchar *) "app_id",
8212+    (gchar *) "s",
8213+    NULL
8214+  },
8215+  FALSE
8216+};
8217+
8218+static const _ExtendedGDBusArgInfo _gxdp_documents_method_info_revoke_permissions_IN_ARG_permissions =
8219+{
8220+  {
8221+    -1,
8222+    (gchar *) "permissions",
8223+    (gchar *) "as",
8224+    NULL
8225+  },
8226+  FALSE
8227+};
8228+
8229+static const GDBusArgInfo * const _gxdp_documents_method_info_revoke_permissions_IN_ARG_pointers[] =
8230+{
8231+  &_gxdp_documents_method_info_revoke_permissions_IN_ARG_doc_id.parent_struct,
8232+  &_gxdp_documents_method_info_revoke_permissions_IN_ARG_app_id.parent_struct,
8233+  &_gxdp_documents_method_info_revoke_permissions_IN_ARG_permissions.parent_struct,
8234+  NULL
8235+};
8236+
8237+static const _ExtendedGDBusMethodInfo _gxdp_documents_method_info_revoke_permissions =
8238+{
8239+  {
8240+    -1,
8241+    (gchar *) "RevokePermissions",
8242+    (GDBusArgInfo **) &_gxdp_documents_method_info_revoke_permissions_IN_ARG_pointers,
8243+    NULL,
8244+    NULL
8245+  },
8246+  "handle-revoke-permissions",
8247+  FALSE
8248+};
8249+
8250+static const _ExtendedGDBusArgInfo _gxdp_documents_method_info_delete_IN_ARG_doc_id =
8251+{
8252+  {
8253+    -1,
8254+    (gchar *) "doc_id",
8255+    (gchar *) "s",
8256+    NULL
8257+  },
8258+  FALSE
8259+};
8260+
8261+static const GDBusArgInfo * const _gxdp_documents_method_info_delete_IN_ARG_pointers[] =
8262+{
8263+  &_gxdp_documents_method_info_delete_IN_ARG_doc_id.parent_struct,
8264+  NULL
8265+};
8266+
8267+static const _ExtendedGDBusMethodInfo _gxdp_documents_method_info_delete =
8268+{
8269+  {
8270+    -1,
8271+    (gchar *) "Delete",
8272+    (GDBusArgInfo **) &_gxdp_documents_method_info_delete_IN_ARG_pointers,
8273+    NULL,
8274+    NULL
8275+  },
8276+  "handle-delete",
8277+  FALSE
8278+};
8279+
8280+static const _ExtendedGDBusArgInfo _gxdp_documents_method_info_lookup_IN_ARG_filename =
8281+{
8282+  {
8283+    -1,
8284+    (gchar *) "filename",
8285+    (gchar *) "ay",
8286+    NULL
8287+  },
8288+  FALSE
8289+};
8290+
8291+static const GDBusArgInfo * const _gxdp_documents_method_info_lookup_IN_ARG_pointers[] =
8292+{
8293+  &_gxdp_documents_method_info_lookup_IN_ARG_filename.parent_struct,
8294+  NULL
8295+};
8296+
8297+static const _ExtendedGDBusArgInfo _gxdp_documents_method_info_lookup_OUT_ARG_doc_id =
8298+{
8299+  {
8300+    -1,
8301+    (gchar *) "doc_id",
8302+    (gchar *) "s",
8303+    NULL
8304+  },
8305+  FALSE
8306+};
8307+
8308+static const GDBusArgInfo * const _gxdp_documents_method_info_lookup_OUT_ARG_pointers[] =
8309+{
8310+  &_gxdp_documents_method_info_lookup_OUT_ARG_doc_id.parent_struct,
8311+  NULL
8312+};
8313+
8314+static const _ExtendedGDBusMethodInfo _gxdp_documents_method_info_lookup =
8315+{
8316+  {
8317+    -1,
8318+    (gchar *) "Lookup",
8319+    (GDBusArgInfo **) &_gxdp_documents_method_info_lookup_IN_ARG_pointers,
8320+    (GDBusArgInfo **) &_gxdp_documents_method_info_lookup_OUT_ARG_pointers,
8321+    NULL
8322+  },
8323+  "handle-lookup",
8324+  FALSE
8325+};
8326+
8327+static const _ExtendedGDBusArgInfo _gxdp_documents_method_info_info_IN_ARG_doc_id =
8328+{
8329+  {
8330+    -1,
8331+    (gchar *) "doc_id",
8332+    (gchar *) "s",
8333+    NULL
8334+  },
8335+  FALSE
8336+};
8337+
8338+static const GDBusArgInfo * const _gxdp_documents_method_info_info_IN_ARG_pointers[] =
8339+{
8340+  &_gxdp_documents_method_info_info_IN_ARG_doc_id.parent_struct,
8341+  NULL
8342+};
8343+
8344+static const _ExtendedGDBusArgInfo _gxdp_documents_method_info_info_OUT_ARG_path =
8345+{
8346+  {
8347+    -1,
8348+    (gchar *) "path",
8349+    (gchar *) "ay",
8350+    NULL
8351+  },
8352+  FALSE
8353+};
8354+
8355+static const _ExtendedGDBusArgInfo _gxdp_documents_method_info_info_OUT_ARG_apps =
8356+{
8357+  {
8358+    -1,
8359+    (gchar *) "apps",
8360+    (gchar *) "a{sas}",
8361+    NULL
8362+  },
8363+  FALSE
8364+};
8365+
8366+static const GDBusArgInfo * const _gxdp_documents_method_info_info_OUT_ARG_pointers[] =
8367+{
8368+  &_gxdp_documents_method_info_info_OUT_ARG_path.parent_struct,
8369+  &_gxdp_documents_method_info_info_OUT_ARG_apps.parent_struct,
8370+  NULL
8371+};
8372+
8373+static const _ExtendedGDBusMethodInfo _gxdp_documents_method_info_info =
8374+{
8375+  {
8376+    -1,
8377+    (gchar *) "Info",
8378+    (GDBusArgInfo **) &_gxdp_documents_method_info_info_IN_ARG_pointers,
8379+    (GDBusArgInfo **) &_gxdp_documents_method_info_info_OUT_ARG_pointers,
8380+    NULL
8381+  },
8382+  "handle-info",
8383+  FALSE
8384+};
8385+
8386+static const _ExtendedGDBusArgInfo _gxdp_documents_method_info_list_IN_ARG_app_id =
8387+{
8388+  {
8389+    -1,
8390+    (gchar *) "app_id",
8391+    (gchar *) "s",
8392+    NULL
8393+  },
8394+  FALSE
8395+};
8396+
8397+static const GDBusArgInfo * const _gxdp_documents_method_info_list_IN_ARG_pointers[] =
8398+{
8399+  &_gxdp_documents_method_info_list_IN_ARG_app_id.parent_struct,
8400+  NULL
8401+};
8402+
8403+static const _ExtendedGDBusArgInfo _gxdp_documents_method_info_list_OUT_ARG_docs =
8404+{
8405+  {
8406+    -1,
8407+    (gchar *) "docs",
8408+    (gchar *) "a{say}",
8409+    NULL
8410+  },
8411+  FALSE
8412+};
8413+
8414+static const GDBusArgInfo * const _gxdp_documents_method_info_list_OUT_ARG_pointers[] =
8415+{
8416+  &_gxdp_documents_method_info_list_OUT_ARG_docs.parent_struct,
8417+  NULL
8418+};
8419+
8420+static const _ExtendedGDBusMethodInfo _gxdp_documents_method_info_list =
8421+{
8422+  {
8423+    -1,
8424+    (gchar *) "List",
8425+    (GDBusArgInfo **) &_gxdp_documents_method_info_list_IN_ARG_pointers,
8426+    (GDBusArgInfo **) &_gxdp_documents_method_info_list_OUT_ARG_pointers,
8427+    NULL
8428+  },
8429+  "handle-list",
8430+  FALSE
8431+};
8432+
8433+static const GDBusMethodInfo * const _gxdp_documents_method_info_pointers[] =
8434+{
8435+  &_gxdp_documents_method_info_get_mount_point.parent_struct,
8436+  &_gxdp_documents_method_info_add.parent_struct,
8437+  &_gxdp_documents_method_info_add_named.parent_struct,
8438+  &_gxdp_documents_method_info_add_full.parent_struct,
8439+  &_gxdp_documents_method_info_add_named_full.parent_struct,
8440+  &_gxdp_documents_method_info_grant_permissions.parent_struct,
8441+  &_gxdp_documents_method_info_revoke_permissions.parent_struct,
8442+  &_gxdp_documents_method_info_delete.parent_struct,
8443+  &_gxdp_documents_method_info_lookup.parent_struct,
8444+  &_gxdp_documents_method_info_info.parent_struct,
8445+  &_gxdp_documents_method_info_list.parent_struct,
8446+  NULL
8447+};
8448+
8449+static const _ExtendedGDBusPropertyInfo _gxdp_documents_property_info_version =
8450+{
8451+  {
8452+    -1,
8453+    (gchar *) "version",
8454+    (gchar *) "u",
8455+    G_DBUS_PROPERTY_INFO_FLAGS_READABLE,
8456+    NULL
8457+  },
8458+  "version",
8459+  FALSE,
8460+  TRUE
8461+};
8462+
8463+static const GDBusPropertyInfo * const _gxdp_documents_property_info_pointers[] =
8464+{
8465+  &_gxdp_documents_property_info_version.parent_struct,
8466+  NULL
8467+};
8468+
8469+static const _ExtendedGDBusInterfaceInfo _gxdp_documents_interface_info =
8470+{
8471+  {
8472+    -1,
8473+    (gchar *) "org.freedesktop.portal.Documents",
8474+    (GDBusMethodInfo **) &_gxdp_documents_method_info_pointers,
8475+    NULL,
8476+    (GDBusPropertyInfo **) &_gxdp_documents_property_info_pointers,
8477+    NULL
8478+  },
8479+  "documents",
8480+};
8481+
8482+
8483+/**
8484+ * gxdp_documents_interface_info:
8485+ *
8486+ * Gets a machine-readable description of the <link linkend="gdbus-interface-org-freedesktop-portal-Documents.top_of_page">org.freedesktop.portal.Documents</link> D-Bus interface.
8487+ *
8488+ * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free.
8489+ */
8490+GDBusInterfaceInfo *
8491+gxdp_documents_interface_info (void)
8492+{
8493+  return (GDBusInterfaceInfo *) &_gxdp_documents_interface_info.parent_struct;
8494+}
8495+
8496+/**
8497+ * gxdp_documents_override_properties:
8498+ * @klass: The class structure for a #GObject derived class.
8499+ * @property_id_begin: The property id to assign to the first overridden property.
8500+ *
8501+ * Overrides all #GObject properties in the #GXdpDocuments interface for a concrete class.
8502+ * The properties are overridden in the order they are defined.
8503+ *
8504+ * Returns: The last property id.
8505+ */
8506+guint
8507+gxdp_documents_override_properties (GObjectClass *klass, guint property_id_begin)
8508+{
8509+  g_object_class_override_property (klass, property_id_begin++, "version");
8510+  return property_id_begin - 1;
8511+}
8512+
8513+
8514+
8515+/**
8516+ * GXdpDocuments:
8517+ *
8518+ * Abstract interface type for the D-Bus interface <link linkend="gdbus-interface-org-freedesktop-portal-Documents.top_of_page">org.freedesktop.portal.Documents</link>.
8519+ */
8520+
8521+/**
8522+ * GXdpDocumentsIface:
8523+ * @parent_iface: The parent interface.
8524+ * @handle_add: Handler for the #GXdpDocuments::handle-add signal.
8525+ * @handle_add_full: Handler for the #GXdpDocuments::handle-add-full signal.
8526+ * @handle_add_named: Handler for the #GXdpDocuments::handle-add-named signal.
8527+ * @handle_add_named_full: Handler for the #GXdpDocuments::handle-add-named-full signal.
8528+ * @handle_delete: Handler for the #GXdpDocuments::handle-delete signal.
8529+ * @handle_get_mount_point: Handler for the #GXdpDocuments::handle-get-mount-point signal.
8530+ * @handle_grant_permissions: Handler for the #GXdpDocuments::handle-grant-permissions signal.
8531+ * @handle_info: Handler for the #GXdpDocuments::handle-info signal.
8532+ * @handle_list: Handler for the #GXdpDocuments::handle-list signal.
8533+ * @handle_lookup: Handler for the #GXdpDocuments::handle-lookup signal.
8534+ * @handle_revoke_permissions: Handler for the #GXdpDocuments::handle-revoke-permissions signal.
8535+ * @get_version: Getter for the #GXdpDocuments:version property.
8536+ *
8537+ * Virtual table for the D-Bus interface <link linkend="gdbus-interface-org-freedesktop-portal-Documents.top_of_page">org.freedesktop.portal.Documents</link>.
8538+ */
8539+
8540+typedef GXdpDocumentsIface GXdpDocumentsInterface;
8541+G_DEFINE_INTERFACE (GXdpDocuments, gxdp_documents, G_TYPE_OBJECT)
8542+
8543+static void
8544+gxdp_documents_default_init (GXdpDocumentsIface *iface)
8545+{
8546+  /* GObject signals for incoming D-Bus method calls: */
8547+  /**
8548+   * GXdpDocuments::handle-get-mount-point:
8549+   * @object: A #GXdpDocuments.
8550+   * @invocation: A #GDBusMethodInvocation.
8551+   *
8552+   * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-freedesktop-portal-Documents.GetMountPoint">GetMountPoint()</link> D-Bus method.
8553+   *
8554+   * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call gxdp_documents_complete_get_mount_point() or e.g. g_dbus_method_invocation_return_error() on it) and no other signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
8555+   *
8556+   * Returns: %G_DBUS_METHOD_INVOCATION_HANDLED or %TRUE if the invocation was handled, %G_DBUS_METHOD_INVOCATION_UNHANDLED or %FALSE to let other signal handlers run.
8557+   */
8558+  g_signal_new ("handle-get-mount-point",
8559+    G_TYPE_FROM_INTERFACE (iface),
8560+    G_SIGNAL_RUN_LAST,
8561+    G_STRUCT_OFFSET (GXdpDocumentsIface, handle_get_mount_point),
8562+    g_signal_accumulator_true_handled,
8563+    NULL,
8564+    g_cclosure_marshal_generic,
8565+    G_TYPE_BOOLEAN,
8566+    1,
8567+    G_TYPE_DBUS_METHOD_INVOCATION);
8568+
8569+  /**
8570+   * GXdpDocuments::handle-add:
8571+   * @object: A #GXdpDocuments.
8572+   * @invocation: A #GDBusMethodInvocation.
8573+   * @fd_list: (nullable): A #GUnixFDList or %NULL.
8574+   * @arg_o_path_fd: Argument passed by remote caller.
8575+   * @arg_reuse_existing: Argument passed by remote caller.
8576+   * @arg_persistent: Argument passed by remote caller.
8577+   *
8578+   * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-freedesktop-portal-Documents.Add">Add()</link> D-Bus method.
8579+   *
8580+   * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call gxdp_documents_complete_add() or e.g. g_dbus_method_invocation_return_error() on it) and no other signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
8581+   *
8582+   * Returns: %G_DBUS_METHOD_INVOCATION_HANDLED or %TRUE if the invocation was handled, %G_DBUS_METHOD_INVOCATION_UNHANDLED or %FALSE to let other signal handlers run.
8583+   */
8584+  g_signal_new ("handle-add",
8585+    G_TYPE_FROM_INTERFACE (iface),
8586+    G_SIGNAL_RUN_LAST,
8587+    G_STRUCT_OFFSET (GXdpDocumentsIface, handle_add),
8588+    g_signal_accumulator_true_handled,
8589+    NULL,
8590+    g_cclosure_marshal_generic,
8591+    G_TYPE_BOOLEAN,
8592+    5,
8593+    G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_UNIX_FD_LIST, G_TYPE_VARIANT, G_TYPE_BOOLEAN, G_TYPE_BOOLEAN);
8594+
8595+  /**
8596+   * GXdpDocuments::handle-add-named:
8597+   * @object: A #GXdpDocuments.
8598+   * @invocation: A #GDBusMethodInvocation.
8599+   * @fd_list: (nullable): A #GUnixFDList or %NULL.
8600+   * @arg_o_path_parent_fd: Argument passed by remote caller.
8601+   * @arg_filename: Argument passed by remote caller.
8602+   * @arg_reuse_existing: Argument passed by remote caller.
8603+   * @arg_persistent: Argument passed by remote caller.
8604+   *
8605+   * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-freedesktop-portal-Documents.AddNamed">AddNamed()</link> D-Bus method.
8606+   *
8607+   * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call gxdp_documents_complete_add_named() or e.g. g_dbus_method_invocation_return_error() on it) and no other signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
8608+   *
8609+   * Returns: %G_DBUS_METHOD_INVOCATION_HANDLED or %TRUE if the invocation was handled, %G_DBUS_METHOD_INVOCATION_UNHANDLED or %FALSE to let other signal handlers run.
8610+   */
8611+  g_signal_new ("handle-add-named",
8612+    G_TYPE_FROM_INTERFACE (iface),
8613+    G_SIGNAL_RUN_LAST,
8614+    G_STRUCT_OFFSET (GXdpDocumentsIface, handle_add_named),
8615+    g_signal_accumulator_true_handled,
8616+    NULL,
8617+    g_cclosure_marshal_generic,
8618+    G_TYPE_BOOLEAN,
8619+    6,
8620+    G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_UNIX_FD_LIST, G_TYPE_VARIANT, G_TYPE_STRING, G_TYPE_BOOLEAN, G_TYPE_BOOLEAN);
8621+
8622+  /**
8623+   * GXdpDocuments::handle-add-full:
8624+   * @object: A #GXdpDocuments.
8625+   * @invocation: A #GDBusMethodInvocation.
8626+   * @fd_list: (nullable): A #GUnixFDList or %NULL.
8627+   * @arg_o_path_fds: Argument passed by remote caller.
8628+   * @arg_flags: Argument passed by remote caller.
8629+   * @arg_app_id: Argument passed by remote caller.
8630+   * @arg_permissions: Argument passed by remote caller.
8631+   *
8632+   * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-freedesktop-portal-Documents.AddFull">AddFull()</link> D-Bus method.
8633+   *
8634+   * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call gxdp_documents_complete_add_full() or e.g. g_dbus_method_invocation_return_error() on it) and no other signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
8635+   *
8636+   * Returns: %G_DBUS_METHOD_INVOCATION_HANDLED or %TRUE if the invocation was handled, %G_DBUS_METHOD_INVOCATION_UNHANDLED or %FALSE to let other signal handlers run.
8637+   */
8638+  g_signal_new ("handle-add-full",
8639+    G_TYPE_FROM_INTERFACE (iface),
8640+    G_SIGNAL_RUN_LAST,
8641+    G_STRUCT_OFFSET (GXdpDocumentsIface, handle_add_full),
8642+    g_signal_accumulator_true_handled,
8643+    NULL,
8644+    g_cclosure_marshal_generic,
8645+    G_TYPE_BOOLEAN,
8646+    6,
8647+    G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_UNIX_FD_LIST, G_TYPE_VARIANT, G_TYPE_UINT, G_TYPE_STRING, G_TYPE_STRV);
8648+
8649+  /**
8650+   * GXdpDocuments::handle-add-named-full:
8651+   * @object: A #GXdpDocuments.
8652+   * @invocation: A #GDBusMethodInvocation.
8653+   * @fd_list: (nullable): A #GUnixFDList or %NULL.
8654+   * @arg_o_path_fd: Argument passed by remote caller.
8655+   * @arg_filename: Argument passed by remote caller.
8656+   * @arg_flags: Argument passed by remote caller.
8657+   * @arg_app_id: Argument passed by remote caller.
8658+   * @arg_permissions: Argument passed by remote caller.
8659+   *
8660+   * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-freedesktop-portal-Documents.AddNamedFull">AddNamedFull()</link> D-Bus method.
8661+   *
8662+   * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call gxdp_documents_complete_add_named_full() or e.g. g_dbus_method_invocation_return_error() on it) and no other signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
8663+   *
8664+   * Returns: %G_DBUS_METHOD_INVOCATION_HANDLED or %TRUE if the invocation was handled, %G_DBUS_METHOD_INVOCATION_UNHANDLED or %FALSE to let other signal handlers run.
8665+   */
8666+  g_signal_new ("handle-add-named-full",
8667+    G_TYPE_FROM_INTERFACE (iface),
8668+    G_SIGNAL_RUN_LAST,
8669+    G_STRUCT_OFFSET (GXdpDocumentsIface, handle_add_named_full),
8670+    g_signal_accumulator_true_handled,
8671+    NULL,
8672+    g_cclosure_marshal_generic,
8673+    G_TYPE_BOOLEAN,
8674+    7,
8675+    G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_UNIX_FD_LIST, G_TYPE_VARIANT, G_TYPE_STRING, G_TYPE_UINT, G_TYPE_STRING, G_TYPE_STRV);
8676+
8677+  /**
8678+   * GXdpDocuments::handle-grant-permissions:
8679+   * @object: A #GXdpDocuments.
8680+   * @invocation: A #GDBusMethodInvocation.
8681+   * @arg_doc_id: Argument passed by remote caller.
8682+   * @arg_app_id: Argument passed by remote caller.
8683+   * @arg_permissions: Argument passed by remote caller.
8684+   *
8685+   * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-freedesktop-portal-Documents.GrantPermissions">GrantPermissions()</link> D-Bus method.
8686+   *
8687+   * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call gxdp_documents_complete_grant_permissions() or e.g. g_dbus_method_invocation_return_error() on it) and no other signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
8688+   *
8689+   * Returns: %G_DBUS_METHOD_INVOCATION_HANDLED or %TRUE if the invocation was handled, %G_DBUS_METHOD_INVOCATION_UNHANDLED or %FALSE to let other signal handlers run.
8690+   */
8691+  g_signal_new ("handle-grant-permissions",
8692+    G_TYPE_FROM_INTERFACE (iface),
8693+    G_SIGNAL_RUN_LAST,
8694+    G_STRUCT_OFFSET (GXdpDocumentsIface, handle_grant_permissions),
8695+    g_signal_accumulator_true_handled,
8696+    NULL,
8697+    g_cclosure_marshal_generic,
8698+    G_TYPE_BOOLEAN,
8699+    4,
8700+    G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRV);
8701+
8702+  /**
8703+   * GXdpDocuments::handle-revoke-permissions:
8704+   * @object: A #GXdpDocuments.
8705+   * @invocation: A #GDBusMethodInvocation.
8706+   * @arg_doc_id: Argument passed by remote caller.
8707+   * @arg_app_id: Argument passed by remote caller.
8708+   * @arg_permissions: Argument passed by remote caller.
8709+   *
8710+   * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-freedesktop-portal-Documents.RevokePermissions">RevokePermissions()</link> D-Bus method.
8711+   *
8712+   * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call gxdp_documents_complete_revoke_permissions() or e.g. g_dbus_method_invocation_return_error() on it) and no other signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
8713+   *
8714+   * Returns: %G_DBUS_METHOD_INVOCATION_HANDLED or %TRUE if the invocation was handled, %G_DBUS_METHOD_INVOCATION_UNHANDLED or %FALSE to let other signal handlers run.
8715+   */
8716+  g_signal_new ("handle-revoke-permissions",
8717+    G_TYPE_FROM_INTERFACE (iface),
8718+    G_SIGNAL_RUN_LAST,
8719+    G_STRUCT_OFFSET (GXdpDocumentsIface, handle_revoke_permissions),
8720+    g_signal_accumulator_true_handled,
8721+    NULL,
8722+    g_cclosure_marshal_generic,
8723+    G_TYPE_BOOLEAN,
8724+    4,
8725+    G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRV);
8726+
8727+  /**
8728+   * GXdpDocuments::handle-delete:
8729+   * @object: A #GXdpDocuments.
8730+   * @invocation: A #GDBusMethodInvocation.
8731+   * @arg_doc_id: Argument passed by remote caller.
8732+   *
8733+   * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-freedesktop-portal-Documents.Delete">Delete()</link> D-Bus method.
8734+   *
8735+   * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call gxdp_documents_complete_delete() or e.g. g_dbus_method_invocation_return_error() on it) and no other signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
8736+   *
8737+   * Returns: %G_DBUS_METHOD_INVOCATION_HANDLED or %TRUE if the invocation was handled, %G_DBUS_METHOD_INVOCATION_UNHANDLED or %FALSE to let other signal handlers run.
8738+   */
8739+  g_signal_new ("handle-delete",
8740+    G_TYPE_FROM_INTERFACE (iface),
8741+    G_SIGNAL_RUN_LAST,
8742+    G_STRUCT_OFFSET (GXdpDocumentsIface, handle_delete),
8743+    g_signal_accumulator_true_handled,
8744+    NULL,
8745+    g_cclosure_marshal_generic,
8746+    G_TYPE_BOOLEAN,
8747+    2,
8748+    G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_STRING);
8749+
8750+  /**
8751+   * GXdpDocuments::handle-lookup:
8752+   * @object: A #GXdpDocuments.
8753+   * @invocation: A #GDBusMethodInvocation.
8754+   * @arg_filename: Argument passed by remote caller.
8755+   *
8756+   * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-freedesktop-portal-Documents.Lookup">Lookup()</link> D-Bus method.
8757+   *
8758+   * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call gxdp_documents_complete_lookup() or e.g. g_dbus_method_invocation_return_error() on it) and no other signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
8759+   *
8760+   * Returns: %G_DBUS_METHOD_INVOCATION_HANDLED or %TRUE if the invocation was handled, %G_DBUS_METHOD_INVOCATION_UNHANDLED or %FALSE to let other signal handlers run.
8761+   */
8762+  g_signal_new ("handle-lookup",
8763+    G_TYPE_FROM_INTERFACE (iface),
8764+    G_SIGNAL_RUN_LAST,
8765+    G_STRUCT_OFFSET (GXdpDocumentsIface, handle_lookup),
8766+    g_signal_accumulator_true_handled,
8767+    NULL,
8768+    g_cclosure_marshal_generic,
8769+    G_TYPE_BOOLEAN,
8770+    2,
8771+    G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_STRING);
8772+
8773+  /**
8774+   * GXdpDocuments::handle-info:
8775+   * @object: A #GXdpDocuments.
8776+   * @invocation: A #GDBusMethodInvocation.
8777+   * @arg_doc_id: Argument passed by remote caller.
8778+   *
8779+   * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-freedesktop-portal-Documents.Info">Info()</link> D-Bus method.
8780+   *
8781+   * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call gxdp_documents_complete_info() or e.g. g_dbus_method_invocation_return_error() on it) and no other signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
8782+   *
8783+   * Returns: %G_DBUS_METHOD_INVOCATION_HANDLED or %TRUE if the invocation was handled, %G_DBUS_METHOD_INVOCATION_UNHANDLED or %FALSE to let other signal handlers run.
8784+   */
8785+  g_signal_new ("handle-info",
8786+    G_TYPE_FROM_INTERFACE (iface),
8787+    G_SIGNAL_RUN_LAST,
8788+    G_STRUCT_OFFSET (GXdpDocumentsIface, handle_info),
8789+    g_signal_accumulator_true_handled,
8790+    NULL,
8791+    g_cclosure_marshal_generic,
8792+    G_TYPE_BOOLEAN,
8793+    2,
8794+    G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_STRING);
8795+
8796+  /**
8797+   * GXdpDocuments::handle-list:
8798+   * @object: A #GXdpDocuments.
8799+   * @invocation: A #GDBusMethodInvocation.
8800+   * @arg_app_id: Argument passed by remote caller.
8801+   *
8802+   * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-freedesktop-portal-Documents.List">List()</link> D-Bus method.
8803+   *
8804+   * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call gxdp_documents_complete_list() or e.g. g_dbus_method_invocation_return_error() on it) and no other signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
8805+   *
8806+   * Returns: %G_DBUS_METHOD_INVOCATION_HANDLED or %TRUE if the invocation was handled, %G_DBUS_METHOD_INVOCATION_UNHANDLED or %FALSE to let other signal handlers run.
8807+   */
8808+  g_signal_new ("handle-list",
8809+    G_TYPE_FROM_INTERFACE (iface),
8810+    G_SIGNAL_RUN_LAST,
8811+    G_STRUCT_OFFSET (GXdpDocumentsIface, handle_list),
8812+    g_signal_accumulator_true_handled,
8813+    NULL,
8814+    g_cclosure_marshal_generic,
8815+    G_TYPE_BOOLEAN,
8816+    2,
8817+    G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_STRING);
8818+
8819+  /* GObject properties for D-Bus properties: */
8820+  /**
8821+   * GXdpDocuments:version:
8822+   *
8823+   * Represents the D-Bus property <link linkend="gdbus-property-org-freedesktop-portal-Documents.version">"version"</link>.
8824+   *
8825+   * Since the D-Bus property for this #GObject property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.
8826+   */
8827+  g_object_interface_install_property (iface,
8828+    g_param_spec_uint ("version", "version", "version", 0, G_MAXUINT32, 0, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
8829+}
8830+
8831+/**
8832+ * gxdp_documents_get_version: (skip)
8833+ * @object: A #GXdpDocuments.
8834+ *
8835+ * Gets the value of the <link linkend="gdbus-property-org-freedesktop-portal-Documents.version">"version"</link> D-Bus property.
8836+ *
8837+ * Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
8838+ *
8839+ * Returns: The property value.
8840+ */
8841+guint
8842+gxdp_documents_get_version (GXdpDocuments *object)
8843+{
8844+  return GXDP_DOCUMENTS_GET_IFACE (object)->get_version (object);
8845+}
8846+
8847+/**
8848+ * gxdp_documents_set_version: (skip)
8849+ * @object: A #GXdpDocuments.
8850+ * @value: The value to set.
8851+ *
8852+ * Sets the <link linkend="gdbus-property-org-freedesktop-portal-Documents.version">"version"</link> D-Bus property to @value.
8853+ *
8854+ * Since this D-Bus property is not writable, it is only meaningful to use this function on the service-side.
8855+ */
8856+void
8857+gxdp_documents_set_version (GXdpDocuments *object, guint value)
8858+{
8859+  g_object_set (G_OBJECT (object), "version", value, NULL);
8860+}
8861+
8862+/**
8863+ * gxdp_documents_call_get_mount_point:
8864+ * @proxy: A #GXdpDocumentsProxy.
8865+ * @cancellable: (nullable): A #GCancellable or %NULL.
8866+ * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
8867+ * @user_data: User data to pass to @callback.
8868+ *
8869+ * Asynchronously invokes the <link linkend="gdbus-method-org-freedesktop-portal-Documents.GetMountPoint">GetMountPoint()</link> D-Bus method on @proxy.
8870+ * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from (see g_main_context_push_thread_default()).
8871+ * You can then call gxdp_documents_call_get_mount_point_finish() to get the result of the operation.
8872+ *
8873+ * See gxdp_documents_call_get_mount_point_sync() for the synchronous, blocking version of this method.
8874+ */
8875+void
8876+gxdp_documents_call_get_mount_point (
8877+    GXdpDocuments *proxy,
8878+    GCancellable *cancellable,
8879+    GAsyncReadyCallback callback,
8880+    gpointer user_data)
8881+{
8882+  g_dbus_proxy_call (G_DBUS_PROXY (proxy),
8883+    "GetMountPoint",
8884+    g_variant_new ("()"),
8885+    G_DBUS_CALL_FLAGS_NONE,
8886+    -1,
8887+    cancellable,
8888+    callback,
8889+    user_data);
8890+}
8891+
8892+/**
8893+ * gxdp_documents_call_get_mount_point_finish:
8894+ * @proxy: A #GXdpDocumentsProxy.
8895+ * @out_path: (out) (optional): Return location for return parameter or %NULL to ignore.
8896+ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to gxdp_documents_call_get_mount_point().
8897+ * @error: Return location for error or %NULL.
8898+ *
8899+ * Finishes an operation started with gxdp_documents_call_get_mount_point().
8900+ *
8901+ * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
8902+ */
8903+gboolean
8904+gxdp_documents_call_get_mount_point_finish (
8905+    GXdpDocuments *proxy,
8906+    gchar **out_path,
8907+    GAsyncResult *res,
8908+    GError **error)
8909+{
8910+  GVariant *_ret;
8911+  _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
8912+  if (_ret == NULL)
8913+    goto _out;
8914+  g_variant_get (_ret,
8915+                 "(^ay)",
8916+                 out_path);
8917+  g_variant_unref (_ret);
8918+_out:
8919+  return _ret != NULL;
8920+}
8921+
8922+/**
8923+ * gxdp_documents_call_get_mount_point_sync:
8924+ * @proxy: A #GXdpDocumentsProxy.
8925+ * @out_path: (out) (optional): Return location for return parameter or %NULL to ignore.
8926+ * @cancellable: (nullable): A #GCancellable or %NULL.
8927+ * @error: Return location for error or %NULL.
8928+ *
8929+ * Synchronously invokes the <link linkend="gdbus-method-org-freedesktop-portal-Documents.GetMountPoint">GetMountPoint()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
8930+ *
8931+ * See gxdp_documents_call_get_mount_point() for the asynchronous version of this method.
8932+ *
8933+ * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
8934+ */
8935+gboolean
8936+gxdp_documents_call_get_mount_point_sync (
8937+    GXdpDocuments *proxy,
8938+    gchar **out_path,
8939+    GCancellable *cancellable,
8940+    GError **error)
8941+{
8942+  GVariant *_ret;
8943+  _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
8944+    "GetMountPoint",
8945+    g_variant_new ("()"),
8946+    G_DBUS_CALL_FLAGS_NONE,
8947+    -1,
8948+    cancellable,
8949+    error);
8950+  if (_ret == NULL)
8951+    goto _out;
8952+  g_variant_get (_ret,
8953+                 "(^ay)",
8954+                 out_path);
8955+  g_variant_unref (_ret);
8956+_out:
8957+  return _ret != NULL;
8958+}
8959+
8960+/**
8961+ * gxdp_documents_call_add:
8962+ * @proxy: A #GXdpDocumentsProxy.
8963+ * @arg_o_path_fd: Argument to pass with the method invocation.
8964+ * @arg_reuse_existing: Argument to pass with the method invocation.
8965+ * @arg_persistent: Argument to pass with the method invocation.
8966+ * @fd_list: (nullable): A #GUnixFDList or %NULL.
8967+ * @cancellable: (nullable): A #GCancellable or %NULL.
8968+ * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
8969+ * @user_data: User data to pass to @callback.
8970+ *
8971+ * Asynchronously invokes the <link linkend="gdbus-method-org-freedesktop-portal-Documents.Add">Add()</link> D-Bus method on @proxy.
8972+ * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from (see g_main_context_push_thread_default()).
8973+ * You can then call gxdp_documents_call_add_finish() to get the result of the operation.
8974+ *
8975+ * See gxdp_documents_call_add_sync() for the synchronous, blocking version of this method.
8976+ */
8977+void
8978+gxdp_documents_call_add (
8979+    GXdpDocuments *proxy,
8980+    GVariant *arg_o_path_fd,
8981+    gboolean arg_reuse_existing,
8982+    gboolean arg_persistent,
8983+    GUnixFDList *fd_list,
8984+    GCancellable *cancellable,
8985+    GAsyncReadyCallback callback,
8986+    gpointer user_data)
8987+{
8988+  g_dbus_proxy_call_with_unix_fd_list (G_DBUS_PROXY (proxy),
8989+    "Add",
8990+    g_variant_new ("(@hbb)",
8991+                   arg_o_path_fd,
8992+                   arg_reuse_existing,
8993+                   arg_persistent),
8994+    G_DBUS_CALL_FLAGS_NONE,
8995+    -1,
8996+    fd_list,
8997+    cancellable,
8998+    callback,
8999+    user_data);
9000+}
9001+
9002+/**
9003+ * gxdp_documents_call_add_finish:
9004+ * @proxy: A #GXdpDocumentsProxy.
9005+ * @out_doc_id: (out) (optional): Return location for return parameter or %NULL to ignore.
9006+ * @out_fd_list: (out) (optional): Return location for a #GUnixFDList or %NULL to ignore.
9007+ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to gxdp_documents_call_add().
9008+ * @error: Return location for error or %NULL.
9009+ *
9010+ * Finishes an operation started with gxdp_documents_call_add().
9011+ *
9012+ * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
9013+ */
9014+gboolean
9015+gxdp_documents_call_add_finish (
9016+    GXdpDocuments *proxy,
9017+    gchar **out_doc_id,
9018+    GUnixFDList **out_fd_list,
9019+    GAsyncResult *res,
9020+    GError **error)
9021+{
9022+  GVariant *_ret;
9023+  _ret = g_dbus_proxy_call_with_unix_fd_list_finish (G_DBUS_PROXY (proxy), out_fd_list, res, error);
9024+  if (_ret == NULL)
9025+    goto _out;
9026+  g_variant_get (_ret,
9027+                 "(s)",
9028+                 out_doc_id);
9029+  g_variant_unref (_ret);
9030+_out:
9031+  return _ret != NULL;
9032+}
9033+
9034+/**
9035+ * gxdp_documents_call_add_sync:
9036+ * @proxy: A #GXdpDocumentsProxy.
9037+ * @arg_o_path_fd: Argument to pass with the method invocation.
9038+ * @arg_reuse_existing: Argument to pass with the method invocation.
9039+ * @arg_persistent: Argument to pass with the method invocation.
9040+ * @fd_list: (nullable): A #GUnixFDList or %NULL.
9041+ * @out_doc_id: (out) (optional): Return location for return parameter or %NULL to ignore.
9042+ * @out_fd_list: (out): Return location for a #GUnixFDList or %NULL.
9043+ * @cancellable: (nullable): A #GCancellable or %NULL.
9044+ * @error: Return location for error or %NULL.
9045+ *
9046+ * Synchronously invokes the <link linkend="gdbus-method-org-freedesktop-portal-Documents.Add">Add()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
9047+ *
9048+ * See gxdp_documents_call_add() for the asynchronous version of this method.
9049+ *
9050+ * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
9051+ */
9052+gboolean
9053+gxdp_documents_call_add_sync (
9054+    GXdpDocuments *proxy,
9055+    GVariant *arg_o_path_fd,
9056+    gboolean arg_reuse_existing,
9057+    gboolean arg_persistent,
9058+    GUnixFDList  *fd_list,
9059+    gchar **out_doc_id,
9060+    GUnixFDList **out_fd_list,
9061+    GCancellable *cancellable,
9062+    GError **error)
9063+{
9064+  GVariant *_ret;
9065+  _ret = g_dbus_proxy_call_with_unix_fd_list_sync (G_DBUS_PROXY (proxy),
9066+    "Add",
9067+    g_variant_new ("(@hbb)",
9068+                   arg_o_path_fd,
9069+                   arg_reuse_existing,
9070+                   arg_persistent),
9071+    G_DBUS_CALL_FLAGS_NONE,
9072+    -1,
9073+    fd_list,
9074+    out_fd_list,
9075+    cancellable,
9076+    error);
9077+  if (_ret == NULL)
9078+    goto _out;
9079+  g_variant_get (_ret,
9080+                 "(s)",
9081+                 out_doc_id);
9082+  g_variant_unref (_ret);
9083+_out:
9084+  return _ret != NULL;
9085+}
9086+
9087+/**
9088+ * gxdp_documents_call_add_named:
9089+ * @proxy: A #GXdpDocumentsProxy.
9090+ * @arg_o_path_parent_fd: Argument to pass with the method invocation.
9091+ * @arg_filename: Argument to pass with the method invocation.
9092+ * @arg_reuse_existing: Argument to pass with the method invocation.
9093+ * @arg_persistent: Argument to pass with the method invocation.
9094+ * @fd_list: (nullable): A #GUnixFDList or %NULL.
9095+ * @cancellable: (nullable): A #GCancellable or %NULL.
9096+ * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
9097+ * @user_data: User data to pass to @callback.
9098+ *
9099+ * Asynchronously invokes the <link linkend="gdbus-method-org-freedesktop-portal-Documents.AddNamed">AddNamed()</link> D-Bus method on @proxy.
9100+ * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from (see g_main_context_push_thread_default()).
9101+ * You can then call gxdp_documents_call_add_named_finish() to get the result of the operation.
9102+ *
9103+ * See gxdp_documents_call_add_named_sync() for the synchronous, blocking version of this method.
9104+ */
9105+void
9106+gxdp_documents_call_add_named (
9107+    GXdpDocuments *proxy,
9108+    GVariant *arg_o_path_parent_fd,
9109+    const gchar *arg_filename,
9110+    gboolean arg_reuse_existing,
9111+    gboolean arg_persistent,
9112+    GUnixFDList *fd_list,
9113+    GCancellable *cancellable,
9114+    GAsyncReadyCallback callback,
9115+    gpointer user_data)
9116+{
9117+  g_dbus_proxy_call_with_unix_fd_list (G_DBUS_PROXY (proxy),
9118+    "AddNamed",
9119+    g_variant_new ("(@h^aybb)",
9120+                   arg_o_path_parent_fd,
9121+                   arg_filename,
9122+                   arg_reuse_existing,
9123+                   arg_persistent),
9124+    G_DBUS_CALL_FLAGS_NONE,
9125+    -1,
9126+    fd_list,
9127+    cancellable,
9128+    callback,
9129+    user_data);
9130+}
9131+
9132+/**
9133+ * gxdp_documents_call_add_named_finish:
9134+ * @proxy: A #GXdpDocumentsProxy.
9135+ * @out_doc_id: (out) (optional): Return location for return parameter or %NULL to ignore.
9136+ * @out_fd_list: (out) (optional): Return location for a #GUnixFDList or %NULL to ignore.
9137+ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to gxdp_documents_call_add_named().
9138+ * @error: Return location for error or %NULL.
9139+ *
9140+ * Finishes an operation started with gxdp_documents_call_add_named().
9141+ *
9142+ * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
9143+ */
9144+gboolean
9145+gxdp_documents_call_add_named_finish (
9146+    GXdpDocuments *proxy,
9147+    gchar **out_doc_id,
9148+    GUnixFDList **out_fd_list,
9149+    GAsyncResult *res,
9150+    GError **error)
9151+{
9152+  GVariant *_ret;
9153+  _ret = g_dbus_proxy_call_with_unix_fd_list_finish (G_DBUS_PROXY (proxy), out_fd_list, res, error);
9154+  if (_ret == NULL)
9155+    goto _out;
9156+  g_variant_get (_ret,
9157+                 "(s)",
9158+                 out_doc_id);
9159+  g_variant_unref (_ret);
9160+_out:
9161+  return _ret != NULL;
9162+}
9163+
9164+/**
9165+ * gxdp_documents_call_add_named_sync:
9166+ * @proxy: A #GXdpDocumentsProxy.
9167+ * @arg_o_path_parent_fd: Argument to pass with the method invocation.
9168+ * @arg_filename: Argument to pass with the method invocation.
9169+ * @arg_reuse_existing: Argument to pass with the method invocation.
9170+ * @arg_persistent: Argument to pass with the method invocation.
9171+ * @fd_list: (nullable): A #GUnixFDList or %NULL.
9172+ * @out_doc_id: (out) (optional): Return location for return parameter or %NULL to ignore.
9173+ * @out_fd_list: (out): Return location for a #GUnixFDList or %NULL.
9174+ * @cancellable: (nullable): A #GCancellable or %NULL.
9175+ * @error: Return location for error or %NULL.
9176+ *
9177+ * Synchronously invokes the <link linkend="gdbus-method-org-freedesktop-portal-Documents.AddNamed">AddNamed()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
9178+ *
9179+ * See gxdp_documents_call_add_named() for the asynchronous version of this method.
9180+ *
9181+ * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
9182+ */
9183+gboolean
9184+gxdp_documents_call_add_named_sync (
9185+    GXdpDocuments *proxy,
9186+    GVariant *arg_o_path_parent_fd,
9187+    const gchar *arg_filename,
9188+    gboolean arg_reuse_existing,
9189+    gboolean arg_persistent,
9190+    GUnixFDList  *fd_list,
9191+    gchar **out_doc_id,
9192+    GUnixFDList **out_fd_list,
9193+    GCancellable *cancellable,
9194+    GError **error)
9195+{
9196+  GVariant *_ret;
9197+  _ret = g_dbus_proxy_call_with_unix_fd_list_sync (G_DBUS_PROXY (proxy),
9198+    "AddNamed",
9199+    g_variant_new ("(@h^aybb)",
9200+                   arg_o_path_parent_fd,
9201+                   arg_filename,
9202+                   arg_reuse_existing,
9203+                   arg_persistent),
9204+    G_DBUS_CALL_FLAGS_NONE,
9205+    -1,
9206+    fd_list,
9207+    out_fd_list,
9208+    cancellable,
9209+    error);
9210+  if (_ret == NULL)
9211+    goto _out;
9212+  g_variant_get (_ret,
9213+                 "(s)",
9214+                 out_doc_id);
9215+  g_variant_unref (_ret);
9216+_out:
9217+  return _ret != NULL;
9218+}
9219+
9220+/**
9221+ * gxdp_documents_call_add_full:
9222+ * @proxy: A #GXdpDocumentsProxy.
9223+ * @arg_o_path_fds: Argument to pass with the method invocation.
9224+ * @arg_flags: Argument to pass with the method invocation.
9225+ * @arg_app_id: Argument to pass with the method invocation.
9226+ * @arg_permissions: Argument to pass with the method invocation.
9227+ * @fd_list: (nullable): A #GUnixFDList or %NULL.
9228+ * @cancellable: (nullable): A #GCancellable or %NULL.
9229+ * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
9230+ * @user_data: User data to pass to @callback.
9231+ *
9232+ * Asynchronously invokes the <link linkend="gdbus-method-org-freedesktop-portal-Documents.AddFull">AddFull()</link> D-Bus method on @proxy.
9233+ * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from (see g_main_context_push_thread_default()).
9234+ * You can then call gxdp_documents_call_add_full_finish() to get the result of the operation.
9235+ *
9236+ * See gxdp_documents_call_add_full_sync() for the synchronous, blocking version of this method.
9237+ */
9238+void
9239+gxdp_documents_call_add_full (
9240+    GXdpDocuments *proxy,
9241+    GVariant *arg_o_path_fds,
9242+    guint arg_flags,
9243+    const gchar *arg_app_id,
9244+    const gchar *const *arg_permissions,
9245+    GUnixFDList *fd_list,
9246+    GCancellable *cancellable,
9247+    GAsyncReadyCallback callback,
9248+    gpointer user_data)
9249+{
9250+  g_dbus_proxy_call_with_unix_fd_list (G_DBUS_PROXY (proxy),
9251+    "AddFull",
9252+    g_variant_new ("(@ahus^as)",
9253+                   arg_o_path_fds,
9254+                   arg_flags,
9255+                   arg_app_id,
9256+                   arg_permissions),
9257+    G_DBUS_CALL_FLAGS_NONE,
9258+    -1,
9259+    fd_list,
9260+    cancellable,
9261+    callback,
9262+    user_data);
9263+}
9264+
9265+/**
9266+ * gxdp_documents_call_add_full_finish:
9267+ * @proxy: A #GXdpDocumentsProxy.
9268+ * @out_doc_ids: (out) (optional) (array zero-terminated=1): Return location for return parameter or %NULL to ignore.
9269+ * @out_extra_out: (out) (optional): Return location for return parameter or %NULL to ignore.
9270+ * @out_fd_list: (out) (optional): Return location for a #GUnixFDList or %NULL to ignore.
9271+ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to gxdp_documents_call_add_full().
9272+ * @error: Return location for error or %NULL.
9273+ *
9274+ * Finishes an operation started with gxdp_documents_call_add_full().
9275+ *
9276+ * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
9277+ */
9278+gboolean
9279+gxdp_documents_call_add_full_finish (
9280+    GXdpDocuments *proxy,
9281+    gchar ***out_doc_ids,
9282+    GVariant **out_extra_out,
9283+    GUnixFDList **out_fd_list,
9284+    GAsyncResult *res,
9285+    GError **error)
9286+{
9287+  GVariant *_ret;
9288+  _ret = g_dbus_proxy_call_with_unix_fd_list_finish (G_DBUS_PROXY (proxy), out_fd_list, res, error);
9289+  if (_ret == NULL)
9290+    goto _out;
9291+  g_variant_get (_ret,
9292+                 "(^as@a{sv})",
9293+                 out_doc_ids,
9294+                 out_extra_out);
9295+  g_variant_unref (_ret);
9296+_out:
9297+  return _ret != NULL;
9298+}
9299+
9300+/**
9301+ * gxdp_documents_call_add_full_sync:
9302+ * @proxy: A #GXdpDocumentsProxy.
9303+ * @arg_o_path_fds: Argument to pass with the method invocation.
9304+ * @arg_flags: Argument to pass with the method invocation.
9305+ * @arg_app_id: Argument to pass with the method invocation.
9306+ * @arg_permissions: Argument to pass with the method invocation.
9307+ * @fd_list: (nullable): A #GUnixFDList or %NULL.
9308+ * @out_doc_ids: (out) (optional) (array zero-terminated=1): Return location for return parameter or %NULL to ignore.
9309+ * @out_extra_out: (out) (optional): Return location for return parameter or %NULL to ignore.
9310+ * @out_fd_list: (out): Return location for a #GUnixFDList or %NULL.
9311+ * @cancellable: (nullable): A #GCancellable or %NULL.
9312+ * @error: Return location for error or %NULL.
9313+ *
9314+ * Synchronously invokes the <link linkend="gdbus-method-org-freedesktop-portal-Documents.AddFull">AddFull()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
9315+ *
9316+ * See gxdp_documents_call_add_full() for the asynchronous version of this method.
9317+ *
9318+ * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
9319+ */
9320+gboolean
9321+gxdp_documents_call_add_full_sync (
9322+    GXdpDocuments *proxy,
9323+    GVariant *arg_o_path_fds,
9324+    guint arg_flags,
9325+    const gchar *arg_app_id,
9326+    const gchar *const *arg_permissions,
9327+    GUnixFDList  *fd_list,
9328+    gchar ***out_doc_ids,
9329+    GVariant **out_extra_out,
9330+    GUnixFDList **out_fd_list,
9331+    GCancellable *cancellable,
9332+    GError **error)
9333+{
9334+  GVariant *_ret;
9335+  _ret = g_dbus_proxy_call_with_unix_fd_list_sync (G_DBUS_PROXY (proxy),
9336+    "AddFull",
9337+    g_variant_new ("(@ahus^as)",
9338+                   arg_o_path_fds,
9339+                   arg_flags,
9340+                   arg_app_id,
9341+                   arg_permissions),
9342+    G_DBUS_CALL_FLAGS_NONE,
9343+    -1,
9344+    fd_list,
9345+    out_fd_list,
9346+    cancellable,
9347+    error);
9348+  if (_ret == NULL)
9349+    goto _out;
9350+  g_variant_get (_ret,
9351+                 "(^as@a{sv})",
9352+                 out_doc_ids,
9353+                 out_extra_out);
9354+  g_variant_unref (_ret);
9355+_out:
9356+  return _ret != NULL;
9357+}
9358+
9359+/**
9360+ * gxdp_documents_call_add_named_full:
9361+ * @proxy: A #GXdpDocumentsProxy.
9362+ * @arg_o_path_fd: Argument to pass with the method invocation.
9363+ * @arg_filename: Argument to pass with the method invocation.
9364+ * @arg_flags: Argument to pass with the method invocation.
9365+ * @arg_app_id: Argument to pass with the method invocation.
9366+ * @arg_permissions: Argument to pass with the method invocation.
9367+ * @fd_list: (nullable): A #GUnixFDList or %NULL.
9368+ * @cancellable: (nullable): A #GCancellable or %NULL.
9369+ * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
9370+ * @user_data: User data to pass to @callback.
9371+ *
9372+ * Asynchronously invokes the <link linkend="gdbus-method-org-freedesktop-portal-Documents.AddNamedFull">AddNamedFull()</link> D-Bus method on @proxy.
9373+ * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from (see g_main_context_push_thread_default()).
9374+ * You can then call gxdp_documents_call_add_named_full_finish() to get the result of the operation.
9375+ *
9376+ * See gxdp_documents_call_add_named_full_sync() for the synchronous, blocking version of this method.
9377+ */
9378+void
9379+gxdp_documents_call_add_named_full (
9380+    GXdpDocuments *proxy,
9381+    GVariant *arg_o_path_fd,
9382+    const gchar *arg_filename,
9383+    guint arg_flags,
9384+    const gchar *arg_app_id,
9385+    const gchar *const *arg_permissions,
9386+    GUnixFDList *fd_list,
9387+    GCancellable *cancellable,
9388+    GAsyncReadyCallback callback,
9389+    gpointer user_data)
9390+{
9391+  g_dbus_proxy_call_with_unix_fd_list (G_DBUS_PROXY (proxy),
9392+    "AddNamedFull",
9393+    g_variant_new ("(@h^ayus^as)",
9394+                   arg_o_path_fd,
9395+                   arg_filename,
9396+                   arg_flags,
9397+                   arg_app_id,
9398+                   arg_permissions),
9399+    G_DBUS_CALL_FLAGS_NONE,
9400+    -1,
9401+    fd_list,
9402+    cancellable,
9403+    callback,
9404+    user_data);
9405+}
9406+
9407+/**
9408+ * gxdp_documents_call_add_named_full_finish:
9409+ * @proxy: A #GXdpDocumentsProxy.
9410+ * @out_doc_id: (out) (optional): Return location for return parameter or %NULL to ignore.
9411+ * @out_extra_out: (out) (optional): Return location for return parameter or %NULL to ignore.
9412+ * @out_fd_list: (out) (optional): Return location for a #GUnixFDList or %NULL to ignore.
9413+ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to gxdp_documents_call_add_named_full().
9414+ * @error: Return location for error or %NULL.
9415+ *
9416+ * Finishes an operation started with gxdp_documents_call_add_named_full().
9417+ *
9418+ * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
9419+ */
9420+gboolean
9421+gxdp_documents_call_add_named_full_finish (
9422+    GXdpDocuments *proxy,
9423+    gchar **out_doc_id,
9424+    GVariant **out_extra_out,
9425+    GUnixFDList **out_fd_list,
9426+    GAsyncResult *res,
9427+    GError **error)
9428+{
9429+  GVariant *_ret;
9430+  _ret = g_dbus_proxy_call_with_unix_fd_list_finish (G_DBUS_PROXY (proxy), out_fd_list, res, error);
9431+  if (_ret == NULL)
9432+    goto _out;
9433+  g_variant_get (_ret,
9434+                 "(s@a{sv})",
9435+                 out_doc_id,
9436+                 out_extra_out);
9437+  g_variant_unref (_ret);
9438+_out:
9439+  return _ret != NULL;
9440+}
9441+
9442+/**
9443+ * gxdp_documents_call_add_named_full_sync:
9444+ * @proxy: A #GXdpDocumentsProxy.
9445+ * @arg_o_path_fd: Argument to pass with the method invocation.
9446+ * @arg_filename: Argument to pass with the method invocation.
9447+ * @arg_flags: Argument to pass with the method invocation.
9448+ * @arg_app_id: Argument to pass with the method invocation.
9449+ * @arg_permissions: Argument to pass with the method invocation.
9450+ * @fd_list: (nullable): A #GUnixFDList or %NULL.
9451+ * @out_doc_id: (out) (optional): Return location for return parameter or %NULL to ignore.
9452+ * @out_extra_out: (out) (optional): Return location for return parameter or %NULL to ignore.
9453+ * @out_fd_list: (out): Return location for a #GUnixFDList or %NULL.
9454+ * @cancellable: (nullable): A #GCancellable or %NULL.
9455+ * @error: Return location for error or %NULL.
9456+ *
9457+ * Synchronously invokes the <link linkend="gdbus-method-org-freedesktop-portal-Documents.AddNamedFull">AddNamedFull()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
9458+ *
9459+ * See gxdp_documents_call_add_named_full() for the asynchronous version of this method.
9460+ *
9461+ * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
9462+ */
9463+gboolean
9464+gxdp_documents_call_add_named_full_sync (
9465+    GXdpDocuments *proxy,
9466+    GVariant *arg_o_path_fd,
9467+    const gchar *arg_filename,
9468+    guint arg_flags,
9469+    const gchar *arg_app_id,
9470+    const gchar *const *arg_permissions,
9471+    GUnixFDList  *fd_list,
9472+    gchar **out_doc_id,
9473+    GVariant **out_extra_out,
9474+    GUnixFDList **out_fd_list,
9475+    GCancellable *cancellable,
9476+    GError **error)
9477+{
9478+  GVariant *_ret;
9479+  _ret = g_dbus_proxy_call_with_unix_fd_list_sync (G_DBUS_PROXY (proxy),
9480+    "AddNamedFull",
9481+    g_variant_new ("(@h^ayus^as)",
9482+                   arg_o_path_fd,
9483+                   arg_filename,
9484+                   arg_flags,
9485+                   arg_app_id,
9486+                   arg_permissions),
9487+    G_DBUS_CALL_FLAGS_NONE,
9488+    -1,
9489+    fd_list,
9490+    out_fd_list,
9491+    cancellable,
9492+    error);
9493+  if (_ret == NULL)
9494+    goto _out;
9495+  g_variant_get (_ret,
9496+                 "(s@a{sv})",
9497+                 out_doc_id,
9498+                 out_extra_out);
9499+  g_variant_unref (_ret);
9500+_out:
9501+  return _ret != NULL;
9502+}
9503+
9504+/**
9505+ * gxdp_documents_call_grant_permissions:
9506+ * @proxy: A #GXdpDocumentsProxy.
9507+ * @arg_doc_id: Argument to pass with the method invocation.
9508+ * @arg_app_id: Argument to pass with the method invocation.
9509+ * @arg_permissions: Argument to pass with the method invocation.
9510+ * @cancellable: (nullable): A #GCancellable or %NULL.
9511+ * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
9512+ * @user_data: User data to pass to @callback.
9513+ *
9514+ * Asynchronously invokes the <link linkend="gdbus-method-org-freedesktop-portal-Documents.GrantPermissions">GrantPermissions()</link> D-Bus method on @proxy.
9515+ * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from (see g_main_context_push_thread_default()).
9516+ * You can then call gxdp_documents_call_grant_permissions_finish() to get the result of the operation.
9517+ *
9518+ * See gxdp_documents_call_grant_permissions_sync() for the synchronous, blocking version of this method.
9519+ */
9520+void
9521+gxdp_documents_call_grant_permissions (
9522+    GXdpDocuments *proxy,
9523+    const gchar *arg_doc_id,
9524+    const gchar *arg_app_id,
9525+    const gchar *const *arg_permissions,
9526+    GCancellable *cancellable,
9527+    GAsyncReadyCallback callback,
9528+    gpointer user_data)
9529+{
9530+  g_dbus_proxy_call (G_DBUS_PROXY (proxy),
9531+    "GrantPermissions",
9532+    g_variant_new ("(ss^as)",
9533+                   arg_doc_id,
9534+                   arg_app_id,
9535+                   arg_permissions),
9536+    G_DBUS_CALL_FLAGS_NONE,
9537+    -1,
9538+    cancellable,
9539+    callback,
9540+    user_data);
9541+}
9542+
9543+/**
9544+ * gxdp_documents_call_grant_permissions_finish:
9545+ * @proxy: A #GXdpDocumentsProxy.
9546+ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to gxdp_documents_call_grant_permissions().
9547+ * @error: Return location for error or %NULL.
9548+ *
9549+ * Finishes an operation started with gxdp_documents_call_grant_permissions().
9550+ *
9551+ * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
9552+ */
9553+gboolean
9554+gxdp_documents_call_grant_permissions_finish (
9555+    GXdpDocuments *proxy,
9556+    GAsyncResult *res,
9557+    GError **error)
9558+{
9559+  GVariant *_ret;
9560+  _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
9561+  if (_ret == NULL)
9562+    goto _out;
9563+  g_variant_get (_ret,
9564+                 "()");
9565+  g_variant_unref (_ret);
9566+_out:
9567+  return _ret != NULL;
9568+}
9569+
9570+/**
9571+ * gxdp_documents_call_grant_permissions_sync:
9572+ * @proxy: A #GXdpDocumentsProxy.
9573+ * @arg_doc_id: Argument to pass with the method invocation.
9574+ * @arg_app_id: Argument to pass with the method invocation.
9575+ * @arg_permissions: Argument to pass with the method invocation.
9576+ * @cancellable: (nullable): A #GCancellable or %NULL.
9577+ * @error: Return location for error or %NULL.
9578+ *
9579+ * Synchronously invokes the <link linkend="gdbus-method-org-freedesktop-portal-Documents.GrantPermissions">GrantPermissions()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
9580+ *
9581+ * See gxdp_documents_call_grant_permissions() for the asynchronous version of this method.
9582+ *
9583+ * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
9584+ */
9585+gboolean
9586+gxdp_documents_call_grant_permissions_sync (
9587+    GXdpDocuments *proxy,
9588+    const gchar *arg_doc_id,
9589+    const gchar *arg_app_id,
9590+    const gchar *const *arg_permissions,
9591+    GCancellable *cancellable,
9592+    GError **error)
9593+{
9594+  GVariant *_ret;
9595+  _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
9596+    "GrantPermissions",
9597+    g_variant_new ("(ss^as)",
9598+                   arg_doc_id,
9599+                   arg_app_id,
9600+                   arg_permissions),
9601+    G_DBUS_CALL_FLAGS_NONE,
9602+    -1,
9603+    cancellable,
9604+    error);
9605+  if (_ret == NULL)
9606+    goto _out;
9607+  g_variant_get (_ret,
9608+                 "()");
9609+  g_variant_unref (_ret);
9610+_out:
9611+  return _ret != NULL;
9612+}
9613+
9614+/**
9615+ * gxdp_documents_call_revoke_permissions:
9616+ * @proxy: A #GXdpDocumentsProxy.
9617+ * @arg_doc_id: Argument to pass with the method invocation.
9618+ * @arg_app_id: Argument to pass with the method invocation.
9619+ * @arg_permissions: Argument to pass with the method invocation.
9620+ * @cancellable: (nullable): A #GCancellable or %NULL.
9621+ * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
9622+ * @user_data: User data to pass to @callback.
9623+ *
9624+ * Asynchronously invokes the <link linkend="gdbus-method-org-freedesktop-portal-Documents.RevokePermissions">RevokePermissions()</link> D-Bus method on @proxy.
9625+ * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from (see g_main_context_push_thread_default()).
9626+ * You can then call gxdp_documents_call_revoke_permissions_finish() to get the result of the operation.
9627+ *
9628+ * See gxdp_documents_call_revoke_permissions_sync() for the synchronous, blocking version of this method.
9629+ */
9630+void
9631+gxdp_documents_call_revoke_permissions (
9632+    GXdpDocuments *proxy,
9633+    const gchar *arg_doc_id,
9634+    const gchar *arg_app_id,
9635+    const gchar *const *arg_permissions,
9636+    GCancellable *cancellable,
9637+    GAsyncReadyCallback callback,
9638+    gpointer user_data)
9639+{
9640+  g_dbus_proxy_call (G_DBUS_PROXY (proxy),
9641+    "RevokePermissions",
9642+    g_variant_new ("(ss^as)",
9643+                   arg_doc_id,
9644+                   arg_app_id,
9645+                   arg_permissions),
9646+    G_DBUS_CALL_FLAGS_NONE,
9647+    -1,
9648+    cancellable,
9649+    callback,
9650+    user_data);
9651+}
9652+
9653+/**
9654+ * gxdp_documents_call_revoke_permissions_finish:
9655+ * @proxy: A #GXdpDocumentsProxy.
9656+ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to gxdp_documents_call_revoke_permissions().
9657+ * @error: Return location for error or %NULL.
9658+ *
9659+ * Finishes an operation started with gxdp_documents_call_revoke_permissions().
9660+ *
9661+ * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
9662+ */
9663+gboolean
9664+gxdp_documents_call_revoke_permissions_finish (
9665+    GXdpDocuments *proxy,
9666+    GAsyncResult *res,
9667+    GError **error)
9668+{
9669+  GVariant *_ret;
9670+  _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
9671+  if (_ret == NULL)
9672+    goto _out;
9673+  g_variant_get (_ret,
9674+                 "()");
9675+  g_variant_unref (_ret);
9676+_out:
9677+  return _ret != NULL;
9678+}
9679+
9680+/**
9681+ * gxdp_documents_call_revoke_permissions_sync:
9682+ * @proxy: A #GXdpDocumentsProxy.
9683+ * @arg_doc_id: Argument to pass with the method invocation.
9684+ * @arg_app_id: Argument to pass with the method invocation.
9685+ * @arg_permissions: Argument to pass with the method invocation.
9686+ * @cancellable: (nullable): A #GCancellable or %NULL.
9687+ * @error: Return location for error or %NULL.
9688+ *
9689+ * Synchronously invokes the <link linkend="gdbus-method-org-freedesktop-portal-Documents.RevokePermissions">RevokePermissions()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
9690+ *
9691+ * See gxdp_documents_call_revoke_permissions() for the asynchronous version of this method.
9692+ *
9693+ * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
9694+ */
9695+gboolean
9696+gxdp_documents_call_revoke_permissions_sync (
9697+    GXdpDocuments *proxy,
9698+    const gchar *arg_doc_id,
9699+    const gchar *arg_app_id,
9700+    const gchar *const *arg_permissions,
9701+    GCancellable *cancellable,
9702+    GError **error)
9703+{
9704+  GVariant *_ret;
9705+  _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
9706+    "RevokePermissions",
9707+    g_variant_new ("(ss^as)",
9708+                   arg_doc_id,
9709+                   arg_app_id,
9710+                   arg_permissions),
9711+    G_DBUS_CALL_FLAGS_NONE,
9712+    -1,
9713+    cancellable,
9714+    error);
9715+  if (_ret == NULL)
9716+    goto _out;
9717+  g_variant_get (_ret,
9718+                 "()");
9719+  g_variant_unref (_ret);
9720+_out:
9721+  return _ret != NULL;
9722+}
9723+
9724+/**
9725+ * gxdp_documents_call_delete:
9726+ * @proxy: A #GXdpDocumentsProxy.
9727+ * @arg_doc_id: Argument to pass with the method invocation.
9728+ * @cancellable: (nullable): A #GCancellable or %NULL.
9729+ * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
9730+ * @user_data: User data to pass to @callback.
9731+ *
9732+ * Asynchronously invokes the <link linkend="gdbus-method-org-freedesktop-portal-Documents.Delete">Delete()</link> D-Bus method on @proxy.
9733+ * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from (see g_main_context_push_thread_default()).
9734+ * You can then call gxdp_documents_call_delete_finish() to get the result of the operation.
9735+ *
9736+ * See gxdp_documents_call_delete_sync() for the synchronous, blocking version of this method.
9737+ */
9738+void
9739+gxdp_documents_call_delete (
9740+    GXdpDocuments *proxy,
9741+    const gchar *arg_doc_id,
9742+    GCancellable *cancellable,
9743+    GAsyncReadyCallback callback,
9744+    gpointer user_data)
9745+{
9746+  g_dbus_proxy_call (G_DBUS_PROXY (proxy),
9747+    "Delete",
9748+    g_variant_new ("(s)",
9749+                   arg_doc_id),
9750+    G_DBUS_CALL_FLAGS_NONE,
9751+    -1,
9752+    cancellable,
9753+    callback,
9754+    user_data);
9755+}
9756+
9757+/**
9758+ * gxdp_documents_call_delete_finish:
9759+ * @proxy: A #GXdpDocumentsProxy.
9760+ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to gxdp_documents_call_delete().
9761+ * @error: Return location for error or %NULL.
9762+ *
9763+ * Finishes an operation started with gxdp_documents_call_delete().
9764+ *
9765+ * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
9766+ */
9767+gboolean
9768+gxdp_documents_call_delete_finish (
9769+    GXdpDocuments *proxy,
9770+    GAsyncResult *res,
9771+    GError **error)
9772+{
9773+  GVariant *_ret;
9774+  _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
9775+  if (_ret == NULL)
9776+    goto _out;
9777+  g_variant_get (_ret,
9778+                 "()");
9779+  g_variant_unref (_ret);
9780+_out:
9781+  return _ret != NULL;
9782+}
9783+
9784+/**
9785+ * gxdp_documents_call_delete_sync:
9786+ * @proxy: A #GXdpDocumentsProxy.
9787+ * @arg_doc_id: Argument to pass with the method invocation.
9788+ * @cancellable: (nullable): A #GCancellable or %NULL.
9789+ * @error: Return location for error or %NULL.
9790+ *
9791+ * Synchronously invokes the <link linkend="gdbus-method-org-freedesktop-portal-Documents.Delete">Delete()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
9792+ *
9793+ * See gxdp_documents_call_delete() for the asynchronous version of this method.
9794+ *
9795+ * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
9796+ */
9797+gboolean
9798+gxdp_documents_call_delete_sync (
9799+    GXdpDocuments *proxy,
9800+    const gchar *arg_doc_id,
9801+    GCancellable *cancellable,
9802+    GError **error)
9803+{
9804+  GVariant *_ret;
9805+  _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
9806+    "Delete",
9807+    g_variant_new ("(s)",
9808+                   arg_doc_id),
9809+    G_DBUS_CALL_FLAGS_NONE,
9810+    -1,
9811+    cancellable,
9812+    error);
9813+  if (_ret == NULL)
9814+    goto _out;
9815+  g_variant_get (_ret,
9816+                 "()");
9817+  g_variant_unref (_ret);
9818+_out:
9819+  return _ret != NULL;
9820+}
9821+
9822+/**
9823+ * gxdp_documents_call_lookup:
9824+ * @proxy: A #GXdpDocumentsProxy.
9825+ * @arg_filename: Argument to pass with the method invocation.
9826+ * @cancellable: (nullable): A #GCancellable or %NULL.
9827+ * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
9828+ * @user_data: User data to pass to @callback.
9829+ *
9830+ * Asynchronously invokes the <link linkend="gdbus-method-org-freedesktop-portal-Documents.Lookup">Lookup()</link> D-Bus method on @proxy.
9831+ * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from (see g_main_context_push_thread_default()).
9832+ * You can then call gxdp_documents_call_lookup_finish() to get the result of the operation.
9833+ *
9834+ * See gxdp_documents_call_lookup_sync() for the synchronous, blocking version of this method.
9835+ */
9836+void
9837+gxdp_documents_call_lookup (
9838+    GXdpDocuments *proxy,
9839+    const gchar *arg_filename,
9840+    GCancellable *cancellable,
9841+    GAsyncReadyCallback callback,
9842+    gpointer user_data)
9843+{
9844+  g_dbus_proxy_call (G_DBUS_PROXY (proxy),
9845+    "Lookup",
9846+    g_variant_new ("(^ay)",
9847+                   arg_filename),
9848+    G_DBUS_CALL_FLAGS_NONE,
9849+    -1,
9850+    cancellable,
9851+    callback,
9852+    user_data);
9853+}
9854+
9855+/**
9856+ * gxdp_documents_call_lookup_finish:
9857+ * @proxy: A #GXdpDocumentsProxy.
9858+ * @out_doc_id: (out) (optional): Return location for return parameter or %NULL to ignore.
9859+ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to gxdp_documents_call_lookup().
9860+ * @error: Return location for error or %NULL.
9861+ *
9862+ * Finishes an operation started with gxdp_documents_call_lookup().
9863+ *
9864+ * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
9865+ */
9866+gboolean
9867+gxdp_documents_call_lookup_finish (
9868+    GXdpDocuments *proxy,
9869+    gchar **out_doc_id,
9870+    GAsyncResult *res,
9871+    GError **error)
9872+{
9873+  GVariant *_ret;
9874+  _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
9875+  if (_ret == NULL)
9876+    goto _out;
9877+  g_variant_get (_ret,
9878+                 "(s)",
9879+                 out_doc_id);
9880+  g_variant_unref (_ret);
9881+_out:
9882+  return _ret != NULL;
9883+}
9884+
9885+/**
9886+ * gxdp_documents_call_lookup_sync:
9887+ * @proxy: A #GXdpDocumentsProxy.
9888+ * @arg_filename: Argument to pass with the method invocation.
9889+ * @out_doc_id: (out) (optional): Return location for return parameter or %NULL to ignore.
9890+ * @cancellable: (nullable): A #GCancellable or %NULL.
9891+ * @error: Return location for error or %NULL.
9892+ *
9893+ * Synchronously invokes the <link linkend="gdbus-method-org-freedesktop-portal-Documents.Lookup">Lookup()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
9894+ *
9895+ * See gxdp_documents_call_lookup() for the asynchronous version of this method.
9896+ *
9897+ * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
9898+ */
9899+gboolean
9900+gxdp_documents_call_lookup_sync (
9901+    GXdpDocuments *proxy,
9902+    const gchar *arg_filename,
9903+    gchar **out_doc_id,
9904+    GCancellable *cancellable,
9905+    GError **error)
9906+{
9907+  GVariant *_ret;
9908+  _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
9909+    "Lookup",
9910+    g_variant_new ("(^ay)",
9911+                   arg_filename),
9912+    G_DBUS_CALL_FLAGS_NONE,
9913+    -1,
9914+    cancellable,
9915+    error);
9916+  if (_ret == NULL)
9917+    goto _out;
9918+  g_variant_get (_ret,
9919+                 "(s)",
9920+                 out_doc_id);
9921+  g_variant_unref (_ret);
9922+_out:
9923+  return _ret != NULL;
9924+}
9925+
9926+/**
9927+ * gxdp_documents_call_info:
9928+ * @proxy: A #GXdpDocumentsProxy.
9929+ * @arg_doc_id: Argument to pass with the method invocation.
9930+ * @cancellable: (nullable): A #GCancellable or %NULL.
9931+ * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
9932+ * @user_data: User data to pass to @callback.
9933+ *
9934+ * Asynchronously invokes the <link linkend="gdbus-method-org-freedesktop-portal-Documents.Info">Info()</link> D-Bus method on @proxy.
9935+ * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from (see g_main_context_push_thread_default()).
9936+ * You can then call gxdp_documents_call_info_finish() to get the result of the operation.
9937+ *
9938+ * See gxdp_documents_call_info_sync() for the synchronous, blocking version of this method.
9939+ */
9940+void
9941+gxdp_documents_call_info (
9942+    GXdpDocuments *proxy,
9943+    const gchar *arg_doc_id,
9944+    GCancellable *cancellable,
9945+    GAsyncReadyCallback callback,
9946+    gpointer user_data)
9947+{
9948+  g_dbus_proxy_call (G_DBUS_PROXY (proxy),
9949+    "Info",
9950+    g_variant_new ("(s)",
9951+                   arg_doc_id),
9952+    G_DBUS_CALL_FLAGS_NONE,
9953+    -1,
9954+    cancellable,
9955+    callback,
9956+    user_data);
9957+}
9958+
9959+/**
9960+ * gxdp_documents_call_info_finish:
9961+ * @proxy: A #GXdpDocumentsProxy.
9962+ * @out_path: (out) (optional): Return location for return parameter or %NULL to ignore.
9963+ * @out_apps: (out) (optional): Return location for return parameter or %NULL to ignore.
9964+ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to gxdp_documents_call_info().
9965+ * @error: Return location for error or %NULL.
9966+ *
9967+ * Finishes an operation started with gxdp_documents_call_info().
9968+ *
9969+ * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
9970+ */
9971+gboolean
9972+gxdp_documents_call_info_finish (
9973+    GXdpDocuments *proxy,
9974+    gchar **out_path,
9975+    GVariant **out_apps,
9976+    GAsyncResult *res,
9977+    GError **error)
9978+{
9979+  GVariant *_ret;
9980+  _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
9981+  if (_ret == NULL)
9982+    goto _out;
9983+  g_variant_get (_ret,
9984+                 "(^ay@a{sas})",
9985+                 out_path,
9986+                 out_apps);
9987+  g_variant_unref (_ret);
9988+_out:
9989+  return _ret != NULL;
9990+}
9991+
9992+/**
9993+ * gxdp_documents_call_info_sync:
9994+ * @proxy: A #GXdpDocumentsProxy.
9995+ * @arg_doc_id: Argument to pass with the method invocation.
9996+ * @out_path: (out) (optional): Return location for return parameter or %NULL to ignore.
9997+ * @out_apps: (out) (optional): Return location for return parameter or %NULL to ignore.
9998+ * @cancellable: (nullable): A #GCancellable or %NULL.
9999+ * @error: Return location for error or %NULL.
10000+ *
10001+ * Synchronously invokes the <link linkend="gdbus-method-org-freedesktop-portal-Documents.Info">Info()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
10002+ *
10003+ * See gxdp_documents_call_info() for the asynchronous version of this method.
10004+ *
10005+ * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
10006+ */
10007+gboolean
10008+gxdp_documents_call_info_sync (
10009+    GXdpDocuments *proxy,
10010+    const gchar *arg_doc_id,
10011+    gchar **out_path,
10012+    GVariant **out_apps,
10013+    GCancellable *cancellable,
10014+    GError **error)
10015+{
10016+  GVariant *_ret;
10017+  _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
10018+    "Info",
10019+    g_variant_new ("(s)",
10020+                   arg_doc_id),
10021+    G_DBUS_CALL_FLAGS_NONE,
10022+    -1,
10023+    cancellable,
10024+    error);
10025+  if (_ret == NULL)
10026+    goto _out;
10027+  g_variant_get (_ret,
10028+                 "(^ay@a{sas})",
10029+                 out_path,
10030+                 out_apps);
10031+  g_variant_unref (_ret);
10032+_out:
10033+  return _ret != NULL;
10034+}
10035+
10036+/**
10037+ * gxdp_documents_call_list:
10038+ * @proxy: A #GXdpDocumentsProxy.
10039+ * @arg_app_id: Argument to pass with the method invocation.
10040+ * @cancellable: (nullable): A #GCancellable or %NULL.
10041+ * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
10042+ * @user_data: User data to pass to @callback.
10043+ *
10044+ * Asynchronously invokes the <link linkend="gdbus-method-org-freedesktop-portal-Documents.List">List()</link> D-Bus method on @proxy.
10045+ * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from (see g_main_context_push_thread_default()).
10046+ * You can then call gxdp_documents_call_list_finish() to get the result of the operation.
10047+ *
10048+ * See gxdp_documents_call_list_sync() for the synchronous, blocking version of this method.
10049+ */
10050+void
10051+gxdp_documents_call_list (
10052+    GXdpDocuments *proxy,
10053+    const gchar *arg_app_id,
10054+    GCancellable *cancellable,
10055+    GAsyncReadyCallback callback,
10056+    gpointer user_data)
10057+{
10058+  g_dbus_proxy_call (G_DBUS_PROXY (proxy),
10059+    "List",
10060+    g_variant_new ("(s)",
10061+                   arg_app_id),
10062+    G_DBUS_CALL_FLAGS_NONE,
10063+    -1,
10064+    cancellable,
10065+    callback,
10066+    user_data);
10067+}
10068+
10069+/**
10070+ * gxdp_documents_call_list_finish:
10071+ * @proxy: A #GXdpDocumentsProxy.
10072+ * @out_docs: (out) (optional): Return location for return parameter or %NULL to ignore.
10073+ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to gxdp_documents_call_list().
10074+ * @error: Return location for error or %NULL.
10075+ *
10076+ * Finishes an operation started with gxdp_documents_call_list().
10077+ *
10078+ * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
10079+ */
10080+gboolean
10081+gxdp_documents_call_list_finish (
10082+    GXdpDocuments *proxy,
10083+    GVariant **out_docs,
10084+    GAsyncResult *res,
10085+    GError **error)
10086+{
10087+  GVariant *_ret;
10088+  _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
10089+  if (_ret == NULL)
10090+    goto _out;
10091+  g_variant_get (_ret,
10092+                 "(@a{say})",
10093+                 out_docs);
10094+  g_variant_unref (_ret);
10095+_out:
10096+  return _ret != NULL;
10097+}
10098+
10099+/**
10100+ * gxdp_documents_call_list_sync:
10101+ * @proxy: A #GXdpDocumentsProxy.
10102+ * @arg_app_id: Argument to pass with the method invocation.
10103+ * @out_docs: (out) (optional): Return location for return parameter or %NULL to ignore.
10104+ * @cancellable: (nullable): A #GCancellable or %NULL.
10105+ * @error: Return location for error or %NULL.
10106+ *
10107+ * Synchronously invokes the <link linkend="gdbus-method-org-freedesktop-portal-Documents.List">List()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
10108+ *
10109+ * See gxdp_documents_call_list() for the asynchronous version of this method.
10110+ *
10111+ * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
10112+ */
10113+gboolean
10114+gxdp_documents_call_list_sync (
10115+    GXdpDocuments *proxy,
10116+    const gchar *arg_app_id,
10117+    GVariant **out_docs,
10118+    GCancellable *cancellable,
10119+    GError **error)
10120+{
10121+  GVariant *_ret;
10122+  _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
10123+    "List",
10124+    g_variant_new ("(s)",
10125+                   arg_app_id),
10126+    G_DBUS_CALL_FLAGS_NONE,
10127+    -1,
10128+    cancellable,
10129+    error);
10130+  if (_ret == NULL)
10131+    goto _out;
10132+  g_variant_get (_ret,
10133+                 "(@a{say})",
10134+                 out_docs);
10135+  g_variant_unref (_ret);
10136+_out:
10137+  return _ret != NULL;
10138+}
10139+
10140+/**
10141+ * gxdp_documents_complete_get_mount_point:
10142+ * @object: A #GXdpDocuments.
10143+ * @invocation: (transfer full): A #GDBusMethodInvocation.
10144+ * @path: Parameter to return.
10145+ *
10146+ * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-freedesktop-portal-Documents.GetMountPoint">GetMountPoint()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
10147+ *
10148+ * This method will free @invocation, you cannot use it afterwards.
10149+ */
10150+void
10151+gxdp_documents_complete_get_mount_point (
10152+    GXdpDocuments *object G_GNUC_UNUSED,
10153+    GDBusMethodInvocation *invocation,
10154+    const gchar *path)
10155+{
10156+  g_dbus_method_invocation_return_value (invocation,
10157+    g_variant_new ("(^ay)",
10158+                   path));
10159+}
10160+
10161+/**
10162+ * gxdp_documents_complete_add:
10163+ * @object: A #GXdpDocuments.
10164+ * @invocation: (transfer full): A #GDBusMethodInvocation.
10165+ * @fd_list: (nullable): A #GUnixFDList or %NULL.
10166+ * @doc_id: Parameter to return.
10167+ *
10168+ * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-freedesktop-portal-Documents.Add">Add()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
10169+ *
10170+ * This method will free @invocation, you cannot use it afterwards.
10171+ */
10172+void
10173+gxdp_documents_complete_add (
10174+    GXdpDocuments *object G_GNUC_UNUSED,
10175+    GDBusMethodInvocation *invocation,
10176+    GUnixFDList *fd_list,
10177+    const gchar *doc_id)
10178+{
10179+  g_dbus_method_invocation_return_value_with_unix_fd_list (invocation,
10180+    g_variant_new ("(s)",
10181+                   doc_id),
10182+    fd_list);
10183+}
10184+
10185+/**
10186+ * gxdp_documents_complete_add_named:
10187+ * @object: A #GXdpDocuments.
10188+ * @invocation: (transfer full): A #GDBusMethodInvocation.
10189+ * @fd_list: (nullable): A #GUnixFDList or %NULL.
10190+ * @doc_id: Parameter to return.
10191+ *
10192+ * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-freedesktop-portal-Documents.AddNamed">AddNamed()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
10193+ *
10194+ * This method will free @invocation, you cannot use it afterwards.
10195+ */
10196+void
10197+gxdp_documents_complete_add_named (
10198+    GXdpDocuments *object G_GNUC_UNUSED,
10199+    GDBusMethodInvocation *invocation,
10200+    GUnixFDList *fd_list,
10201+    const gchar *doc_id)
10202+{
10203+  g_dbus_method_invocation_return_value_with_unix_fd_list (invocation,
10204+    g_variant_new ("(s)",
10205+                   doc_id),
10206+    fd_list);
10207+}
10208+
10209+/**
10210+ * gxdp_documents_complete_add_full:
10211+ * @object: A #GXdpDocuments.
10212+ * @invocation: (transfer full): A #GDBusMethodInvocation.
10213+ * @fd_list: (nullable): A #GUnixFDList or %NULL.
10214+ * @doc_ids: Parameter to return.
10215+ * @extra_out: Parameter to return.
10216+ *
10217+ * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-freedesktop-portal-Documents.AddFull">AddFull()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
10218+ *
10219+ * This method will free @invocation, you cannot use it afterwards.
10220+ */
10221+void
10222+gxdp_documents_complete_add_full (
10223+    GXdpDocuments *object G_GNUC_UNUSED,
10224+    GDBusMethodInvocation *invocation,
10225+    GUnixFDList *fd_list,
10226+    const gchar *const *doc_ids,
10227+    GVariant *extra_out)
10228+{
10229+  g_dbus_method_invocation_return_value_with_unix_fd_list (invocation,
10230+    g_variant_new ("(^as@a{sv})",
10231+                   doc_ids,
10232+                   extra_out),
10233+    fd_list);
10234+}
10235+
10236+/**
10237+ * gxdp_documents_complete_add_named_full:
10238+ * @object: A #GXdpDocuments.
10239+ * @invocation: (transfer full): A #GDBusMethodInvocation.
10240+ * @fd_list: (nullable): A #GUnixFDList or %NULL.
10241+ * @doc_id: Parameter to return.
10242+ * @extra_out: Parameter to return.
10243+ *
10244+ * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-freedesktop-portal-Documents.AddNamedFull">AddNamedFull()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
10245+ *
10246+ * This method will free @invocation, you cannot use it afterwards.
10247+ */
10248+void
10249+gxdp_documents_complete_add_named_full (
10250+    GXdpDocuments *object G_GNUC_UNUSED,
10251+    GDBusMethodInvocation *invocation,
10252+    GUnixFDList *fd_list,
10253+    const gchar *doc_id,
10254+    GVariant *extra_out)
10255+{
10256+  g_dbus_method_invocation_return_value_with_unix_fd_list (invocation,
10257+    g_variant_new ("(s@a{sv})",
10258+                   doc_id,
10259+                   extra_out),
10260+    fd_list);
10261+}
10262+
10263+/**
10264+ * gxdp_documents_complete_grant_permissions:
10265+ * @object: A #GXdpDocuments.
10266+ * @invocation: (transfer full): A #GDBusMethodInvocation.
10267+ *
10268+ * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-freedesktop-portal-Documents.GrantPermissions">GrantPermissions()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
10269+ *
10270+ * This method will free @invocation, you cannot use it afterwards.
10271+ */
10272+void
10273+gxdp_documents_complete_grant_permissions (
10274+    GXdpDocuments *object G_GNUC_UNUSED,
10275+    GDBusMethodInvocation *invocation)
10276+{
10277+  g_dbus_method_invocation_return_value (invocation,
10278+    g_variant_new ("()"));
10279+}
10280+
10281+/**
10282+ * gxdp_documents_complete_revoke_permissions:
10283+ * @object: A #GXdpDocuments.
10284+ * @invocation: (transfer full): A #GDBusMethodInvocation.
10285+ *
10286+ * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-freedesktop-portal-Documents.RevokePermissions">RevokePermissions()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
10287+ *
10288+ * This method will free @invocation, you cannot use it afterwards.
10289+ */
10290+void
10291+gxdp_documents_complete_revoke_permissions (
10292+    GXdpDocuments *object G_GNUC_UNUSED,
10293+    GDBusMethodInvocation *invocation)
10294+{
10295+  g_dbus_method_invocation_return_value (invocation,
10296+    g_variant_new ("()"));
10297+}
10298+
10299+/**
10300+ * gxdp_documents_complete_delete:
10301+ * @object: A #GXdpDocuments.
10302+ * @invocation: (transfer full): A #GDBusMethodInvocation.
10303+ *
10304+ * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-freedesktop-portal-Documents.Delete">Delete()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
10305+ *
10306+ * This method will free @invocation, you cannot use it afterwards.
10307+ */
10308+void
10309+gxdp_documents_complete_delete (
10310+    GXdpDocuments *object G_GNUC_UNUSED,
10311+    GDBusMethodInvocation *invocation)
10312+{
10313+  g_dbus_method_invocation_return_value (invocation,
10314+    g_variant_new ("()"));
10315+}
10316+
10317+/**
10318+ * gxdp_documents_complete_lookup:
10319+ * @object: A #GXdpDocuments.
10320+ * @invocation: (transfer full): A #GDBusMethodInvocation.
10321+ * @doc_id: Parameter to return.
10322+ *
10323+ * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-freedesktop-portal-Documents.Lookup">Lookup()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
10324+ *
10325+ * This method will free @invocation, you cannot use it afterwards.
10326+ */
10327+void
10328+gxdp_documents_complete_lookup (
10329+    GXdpDocuments *object G_GNUC_UNUSED,
10330+    GDBusMethodInvocation *invocation,
10331+    const gchar *doc_id)
10332+{
10333+  g_dbus_method_invocation_return_value (invocation,
10334+    g_variant_new ("(s)",
10335+                   doc_id));
10336+}
10337+
10338+/**
10339+ * gxdp_documents_complete_info:
10340+ * @object: A #GXdpDocuments.
10341+ * @invocation: (transfer full): A #GDBusMethodInvocation.
10342+ * @path: Parameter to return.
10343+ * @apps: Parameter to return.
10344+ *
10345+ * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-freedesktop-portal-Documents.Info">Info()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
10346+ *
10347+ * This method will free @invocation, you cannot use it afterwards.
10348+ */
10349+void
10350+gxdp_documents_complete_info (
10351+    GXdpDocuments *object G_GNUC_UNUSED,
10352+    GDBusMethodInvocation *invocation,
10353+    const gchar *path,
10354+    GVariant *apps)
10355+{
10356+  g_dbus_method_invocation_return_value (invocation,
10357+    g_variant_new ("(^ay@a{sas})",
10358+                   path,
10359+                   apps));
10360+}
10361+
10362+/**
10363+ * gxdp_documents_complete_list:
10364+ * @object: A #GXdpDocuments.
10365+ * @invocation: (transfer full): A #GDBusMethodInvocation.
10366+ * @docs: Parameter to return.
10367+ *
10368+ * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-freedesktop-portal-Documents.List">List()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
10369+ *
10370+ * This method will free @invocation, you cannot use it afterwards.
10371+ */
10372+void
10373+gxdp_documents_complete_list (
10374+    GXdpDocuments *object G_GNUC_UNUSED,
10375+    GDBusMethodInvocation *invocation,
10376+    GVariant *docs)
10377+{
10378+  g_dbus_method_invocation_return_value (invocation,
10379+    g_variant_new ("(@a{say})",
10380+                   docs));
10381+}
10382+
10383+/* ------------------------------------------------------------------------ */
10384+
10385+/**
10386+ * GXdpDocumentsProxy:
10387+ *
10388+ * The #GXdpDocumentsProxy structure contains only private data and should only be accessed using the provided API.
10389+ */
10390+
10391+/**
10392+ * GXdpDocumentsProxyClass:
10393+ * @parent_class: The parent class.
10394+ *
10395+ * Class structure for #GXdpDocumentsProxy.
10396+ */
10397+
10398+struct _GXdpDocumentsProxyPrivate
10399+{
10400+  GData *qdata;
10401+};
10402+
10403+static void gxdp_documents_proxy_iface_init (GXdpDocumentsIface *iface);
10404+
10405+#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
10406+G_DEFINE_TYPE_WITH_CODE (GXdpDocumentsProxy, gxdp_documents_proxy, G_TYPE_DBUS_PROXY,
10407+                         G_ADD_PRIVATE (GXdpDocumentsProxy)
10408+                         G_IMPLEMENT_INTERFACE (GXDP_TYPE_DOCUMENTS, gxdp_documents_proxy_iface_init))
10409+
10410+#else
10411+G_DEFINE_TYPE_WITH_CODE (GXdpDocumentsProxy, gxdp_documents_proxy, G_TYPE_DBUS_PROXY,
10412+                         G_IMPLEMENT_INTERFACE (GXDP_TYPE_DOCUMENTS, gxdp_documents_proxy_iface_init))
10413+
10414+#endif
10415+static void
10416+gxdp_documents_proxy_finalize (GObject *object)
10417+{
10418+  GXdpDocumentsProxy *proxy = GXDP_DOCUMENTS_PROXY (object);
10419+  g_datalist_clear (&proxy->priv->qdata);
10420+  G_OBJECT_CLASS (gxdp_documents_proxy_parent_class)->finalize (object);
10421+}
10422+
10423+static void
10424+gxdp_documents_proxy_get_property (GObject      *object,
10425+  guint         prop_id,
10426+  GValue       *value,
10427+  GParamSpec   *pspec G_GNUC_UNUSED)
10428+{
10429+  const _ExtendedGDBusPropertyInfo *info;
10430+  GVariant *variant;
10431+  g_assert (prop_id != 0 && prop_id - 1 < 1);
10432+  info = (const _ExtendedGDBusPropertyInfo *) _gxdp_documents_property_info_pointers[prop_id - 1];
10433+  variant = g_dbus_proxy_get_cached_property (G_DBUS_PROXY (object), info->parent_struct.name);
10434+  if (info->use_gvariant)
10435+    {
10436+      g_value_set_variant (value, variant);
10437+    }
10438+  else
10439+    {
10440+      if (variant != NULL)
10441+        g_dbus_gvariant_to_gvalue (variant, value);
10442+    }
10443+  if (variant != NULL)
10444+    g_variant_unref (variant);
10445+}
10446+
10447+static void
10448+gxdp_documents_proxy_set_property_cb (GDBusProxy *proxy,
10449+  GAsyncResult *res,
10450+  gpointer      user_data)
10451+{
10452+  const _ExtendedGDBusPropertyInfo *info = user_data;
10453+  GError *error;
10454+  GVariant *_ret;
10455+  error = NULL;
10456+  _ret = g_dbus_proxy_call_finish (proxy, res, &error);
10457+  if (!_ret)
10458+    {
10459+      g_warning ("Error setting property '%s' on interface org.freedesktop.portal.Documents: %s (%s, %d)",
10460+                 info->parent_struct.name,
10461+                 error->message, g_quark_to_string (error->domain), error->code);
10462+      g_error_free (error);
10463+    }
10464+  else
10465+    {
10466+      g_variant_unref (_ret);
10467+    }
10468+}
10469+
10470+static void
10471+gxdp_documents_proxy_set_property (GObject      *object,
10472+  guint         prop_id,
10473+  const GValue *value,
10474+  GParamSpec   *pspec G_GNUC_UNUSED)
10475+{
10476+  const _ExtendedGDBusPropertyInfo *info;
10477+  GVariant *variant;
10478+  g_assert (prop_id != 0 && prop_id - 1 < 1);
10479+  info = (const _ExtendedGDBusPropertyInfo *) _gxdp_documents_property_info_pointers[prop_id - 1];
10480+  variant = g_dbus_gvalue_to_gvariant (value, G_VARIANT_TYPE (info->parent_struct.signature));
10481+  g_dbus_proxy_call (G_DBUS_PROXY (object),
10482+    "org.freedesktop.DBus.Properties.Set",
10483+    g_variant_new ("(ssv)", "org.freedesktop.portal.Documents", info->parent_struct.name, variant),
10484+    G_DBUS_CALL_FLAGS_NONE,
10485+    -1,
10486+    NULL, (GAsyncReadyCallback) gxdp_documents_proxy_set_property_cb, (GDBusPropertyInfo *) &info->parent_struct);
10487+  g_variant_unref (variant);
10488+}
10489+
10490+static void
10491+gxdp_documents_proxy_g_signal (GDBusProxy *proxy,
10492+  const gchar *sender_name G_GNUC_UNUSED,
10493+  const gchar *signal_name,
10494+  GVariant *parameters)
10495+{
10496+  _ExtendedGDBusSignalInfo *info;
10497+  GVariantIter iter;
10498+  GVariant *child;
10499+  GValue *paramv;
10500+  gsize num_params;
10501+  gsize n;
10502+  guint signal_id;
10503+  info = (_ExtendedGDBusSignalInfo *) g_dbus_interface_info_lookup_signal ((GDBusInterfaceInfo *) &_gxdp_documents_interface_info.parent_struct, signal_name);
10504+  if (info == NULL)
10505+    return;
10506+  num_params = g_variant_n_children (parameters);
10507+  paramv = g_new0 (GValue, num_params + 1);
10508+  g_value_init (&paramv[0], GXDP_TYPE_DOCUMENTS);
10509+  g_value_set_object (&paramv[0], proxy);
10510+  g_variant_iter_init (&iter, parameters);
10511+  n = 1;
10512+  while ((child = g_variant_iter_next_value (&iter)) != NULL)
10513+    {
10514+      _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.args[n - 1];
10515+      if (arg_info->use_gvariant)
10516+        {
10517+          g_value_init (&paramv[n], G_TYPE_VARIANT);
10518+          g_value_set_variant (&paramv[n], child);
10519+          n++;
10520+        }
10521+      else
10522+        g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
10523+      g_variant_unref (child);
10524+    }
10525+  signal_id = g_signal_lookup (info->signal_name, GXDP_TYPE_DOCUMENTS);
10526+  g_signal_emitv (paramv, signal_id, 0, NULL);
10527+  for (n = 0; n < num_params + 1; n++)
10528+    g_value_unset (&paramv[n]);
10529+  g_free (paramv);
10530+}
10531+
10532+static void
10533+gxdp_documents_proxy_g_properties_changed (GDBusProxy *_proxy,
10534+  GVariant *changed_properties,
10535+  const gchar *const *invalidated_properties)
10536+{
10537+  GXdpDocumentsProxy *proxy = GXDP_DOCUMENTS_PROXY (_proxy);
10538+  guint n;
10539+  const gchar *key;
10540+  GVariantIter *iter;
10541+  _ExtendedGDBusPropertyInfo *info;
10542+  g_variant_get (changed_properties, "a{sv}", &iter);
10543+  while (g_variant_iter_next (iter, "{&sv}", &key, NULL))
10544+    {
10545+      info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_gxdp_documents_interface_info.parent_struct, key);
10546+      g_datalist_remove_data (&proxy->priv->qdata, key);
10547+      if (info != NULL)
10548+        g_object_notify (G_OBJECT (proxy), info->hyphen_name);
10549+    }
10550+  g_variant_iter_free (iter);
10551+  for (n = 0; invalidated_properties[n] != NULL; n++)
10552+    {
10553+      info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_gxdp_documents_interface_info.parent_struct, invalidated_properties[n]);
10554+      g_datalist_remove_data (&proxy->priv->qdata, invalidated_properties[n]);
10555+      if (info != NULL)
10556+        g_object_notify (G_OBJECT (proxy), info->hyphen_name);
10557+    }
10558+}
10559+
10560+static guint
10561+gxdp_documents_proxy_get_version (GXdpDocuments *object)
10562+{
10563+  GXdpDocumentsProxy *proxy = GXDP_DOCUMENTS_PROXY (object);
10564+  GVariant *variant;
10565+  guint value = 0;
10566+  variant = g_dbus_proxy_get_cached_property (G_DBUS_PROXY (proxy), "version");
10567+  if (variant != NULL)
10568+    {
10569+      value = g_variant_get_uint32 (variant);
10570+      g_variant_unref (variant);
10571+    }
10572+  return value;
10573+}
10574+
10575+static void
10576+gxdp_documents_proxy_init (GXdpDocumentsProxy *proxy)
10577+{
10578+#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
10579+  proxy->priv = gxdp_documents_proxy_get_instance_private (proxy);
10580+#else
10581+  proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, GXDP_TYPE_DOCUMENTS_PROXY, GXdpDocumentsProxyPrivate);
10582+#endif
10583+
10584+  g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), gxdp_documents_interface_info ());
10585+}
10586+
10587+static void
10588+gxdp_documents_proxy_class_init (GXdpDocumentsProxyClass *klass)
10589+{
10590+  GObjectClass *gobject_class;
10591+  GDBusProxyClass *proxy_class;
10592+
10593+  gobject_class = G_OBJECT_CLASS (klass);
10594+  gobject_class->finalize     = gxdp_documents_proxy_finalize;
10595+  gobject_class->get_property = gxdp_documents_proxy_get_property;
10596+  gobject_class->set_property = gxdp_documents_proxy_set_property;
10597+
10598+  proxy_class = G_DBUS_PROXY_CLASS (klass);
10599+  proxy_class->g_signal = gxdp_documents_proxy_g_signal;
10600+  proxy_class->g_properties_changed = gxdp_documents_proxy_g_properties_changed;
10601+
10602+  gxdp_documents_override_properties (gobject_class, 1);
10603+
10604+#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
10605+  g_type_class_add_private (klass, sizeof (GXdpDocumentsProxyPrivate));
10606+#endif
10607+}
10608+
10609+static void
10610+gxdp_documents_proxy_iface_init (GXdpDocumentsIface *iface)
10611+{
10612+  iface->get_version = gxdp_documents_proxy_get_version;
10613+}
10614+
10615+/**
10616+ * gxdp_documents_proxy_new:
10617+ * @connection: A #GDBusConnection.
10618+ * @flags: Flags from the #GDBusProxyFlags enumeration.
10619+ * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
10620+ * @object_path: An object path.
10621+ * @cancellable: (nullable): A #GCancellable or %NULL.
10622+ * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
10623+ * @user_data: User data to pass to @callback.
10624+ *
10625+ * Asynchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-freedesktop-portal-Documents.top_of_page">org.freedesktop.portal.Documents</link>. See g_dbus_proxy_new() for more details.
10626+ *
10627+ * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from (see g_main_context_push_thread_default()).
10628+ * You can then call gxdp_documents_proxy_new_finish() to get the result of the operation.
10629+ *
10630+ * See gxdp_documents_proxy_new_sync() for the synchronous, blocking version of this constructor.
10631+ */
10632+void
10633+gxdp_documents_proxy_new (
10634+    GDBusConnection     *connection,
10635+    GDBusProxyFlags      flags,
10636+    const gchar         *name,
10637+    const gchar         *object_path,
10638+    GCancellable        *cancellable,
10639+    GAsyncReadyCallback  callback,
10640+    gpointer             user_data)
10641+{
10642+  g_async_initable_new_async (GXDP_TYPE_DOCUMENTS_PROXY, G_PRIORITY_DEFAULT, cancellable, callback, user_data, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.freedesktop.portal.Documents", NULL);
10643+}
10644+
10645+/**
10646+ * gxdp_documents_proxy_new_finish:
10647+ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to gxdp_documents_proxy_new().
10648+ * @error: Return location for error or %NULL
10649+ *
10650+ * Finishes an operation started with gxdp_documents_proxy_new().
10651+ *
10652+ * Returns: (transfer full) (type GXdpDocumentsProxy): The constructed proxy object or %NULL if @error is set.
10653+ */
10654+GXdpDocuments *
10655+gxdp_documents_proxy_new_finish (
10656+    GAsyncResult        *res,
10657+    GError             **error)
10658+{
10659+  GObject *ret;
10660+  GObject *source_object;
10661+  source_object = g_async_result_get_source_object (res);
10662+  ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
10663+  g_object_unref (source_object);
10664+  if (ret != NULL)
10665+    return GXDP_DOCUMENTS (ret);
10666+  else
10667+    return NULL;
10668+}
10669+
10670+/**
10671+ * gxdp_documents_proxy_new_sync:
10672+ * @connection: A #GDBusConnection.
10673+ * @flags: Flags from the #GDBusProxyFlags enumeration.
10674+ * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
10675+ * @object_path: An object path.
10676+ * @cancellable: (nullable): A #GCancellable or %NULL.
10677+ * @error: Return location for error or %NULL
10678+ *
10679+ * Synchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-freedesktop-portal-Documents.top_of_page">org.freedesktop.portal.Documents</link>. See g_dbus_proxy_new_sync() for more details.
10680+ *
10681+ * The calling thread is blocked until a reply is received.
10682+ *
10683+ * See gxdp_documents_proxy_new() for the asynchronous version of this constructor.
10684+ *
10685+ * Returns: (transfer full) (type GXdpDocumentsProxy): The constructed proxy object or %NULL if @error is set.
10686+ */
10687+GXdpDocuments *
10688+gxdp_documents_proxy_new_sync (
10689+    GDBusConnection     *connection,
10690+    GDBusProxyFlags      flags,
10691+    const gchar         *name,
10692+    const gchar         *object_path,
10693+    GCancellable        *cancellable,
10694+    GError             **error)
10695+{
10696+  GInitable *ret;
10697+  ret = g_initable_new (GXDP_TYPE_DOCUMENTS_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.freedesktop.portal.Documents", NULL);
10698+  if (ret != NULL)
10699+    return GXDP_DOCUMENTS (ret);
10700+  else
10701+    return NULL;
10702+}
10703+
10704+
10705+/**
10706+ * gxdp_documents_proxy_new_for_bus:
10707+ * @bus_type: A #GBusType.
10708+ * @flags: Flags from the #GDBusProxyFlags enumeration.
10709+ * @name: A bus name (well-known or unique).
10710+ * @object_path: An object path.
10711+ * @cancellable: (nullable): A #GCancellable or %NULL.
10712+ * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
10713+ * @user_data: User data to pass to @callback.
10714+ *
10715+ * Like gxdp_documents_proxy_new() but takes a #GBusType instead of a #GDBusConnection.
10716+ *
10717+ * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from (see g_main_context_push_thread_default()).
10718+ * You can then call gxdp_documents_proxy_new_for_bus_finish() to get the result of the operation.
10719+ *
10720+ * See gxdp_documents_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.
10721+ */
10722+void
10723+gxdp_documents_proxy_new_for_bus (
10724+    GBusType             bus_type,
10725+    GDBusProxyFlags      flags,
10726+    const gchar         *name,
10727+    const gchar         *object_path,
10728+    GCancellable        *cancellable,
10729+    GAsyncReadyCallback  callback,
10730+    gpointer             user_data)
10731+{
10732+  g_async_initable_new_async (GXDP_TYPE_DOCUMENTS_PROXY, G_PRIORITY_DEFAULT, cancellable, callback, user_data, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.freedesktop.portal.Documents", NULL);
10733+}
10734+
10735+/**
10736+ * gxdp_documents_proxy_new_for_bus_finish:
10737+ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to gxdp_documents_proxy_new_for_bus().
10738+ * @error: Return location for error or %NULL
10739+ *
10740+ * Finishes an operation started with gxdp_documents_proxy_new_for_bus().
10741+ *
10742+ * Returns: (transfer full) (type GXdpDocumentsProxy): The constructed proxy object or %NULL if @error is set.
10743+ */
10744+GXdpDocuments *
10745+gxdp_documents_proxy_new_for_bus_finish (
10746+    GAsyncResult        *res,
10747+    GError             **error)
10748+{
10749+  GObject *ret;
10750+  GObject *source_object;
10751+  source_object = g_async_result_get_source_object (res);
10752+  ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
10753+  g_object_unref (source_object);
10754+  if (ret != NULL)
10755+    return GXDP_DOCUMENTS (ret);
10756+  else
10757+    return NULL;
10758+}
10759+
10760+/**
10761+ * gxdp_documents_proxy_new_for_bus_sync:
10762+ * @bus_type: A #GBusType.
10763+ * @flags: Flags from the #GDBusProxyFlags enumeration.
10764+ * @name: A bus name (well-known or unique).
10765+ * @object_path: An object path.
10766+ * @cancellable: (nullable): A #GCancellable or %NULL.
10767+ * @error: Return location for error or %NULL
10768+ *
10769+ * Like gxdp_documents_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.
10770+ *
10771+ * The calling thread is blocked until a reply is received.
10772+ *
10773+ * See gxdp_documents_proxy_new_for_bus() for the asynchronous version of this constructor.
10774+ *
10775+ * Returns: (transfer full) (type GXdpDocumentsProxy): The constructed proxy object or %NULL if @error is set.
10776+ */
10777+GXdpDocuments *
10778+gxdp_documents_proxy_new_for_bus_sync (
10779+    GBusType             bus_type,
10780+    GDBusProxyFlags      flags,
10781+    const gchar         *name,
10782+    const gchar         *object_path,
10783+    GCancellable        *cancellable,
10784+    GError             **error)
10785+{
10786+  GInitable *ret;
10787+  ret = g_initable_new (GXDP_TYPE_DOCUMENTS_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.freedesktop.portal.Documents", NULL);
10788+  if (ret != NULL)
10789+    return GXDP_DOCUMENTS (ret);
10790+  else
10791+    return NULL;
10792+}
10793+
10794+
10795+/* ------------------------------------------------------------------------ */
10796+
10797+/**
10798+ * GXdpDocumentsSkeleton:
10799+ *
10800+ * The #GXdpDocumentsSkeleton structure contains only private data and should only be accessed using the provided API.
10801+ */
10802+
10803+/**
10804+ * GXdpDocumentsSkeletonClass:
10805+ * @parent_class: The parent class.
10806+ *
10807+ * Class structure for #GXdpDocumentsSkeleton.
10808+ */
10809+
10810+struct _GXdpDocumentsSkeletonPrivate
10811+{
10812+  GValue *properties;
10813+  GList *changed_properties;
10814+  GSource *changed_properties_idle_source;
10815+  GMainContext *context;
10816+  GMutex lock;
10817+};
10818+
10819+static void
10820+_gxdp_documents_skeleton_handle_method_call (
10821+  GDBusConnection *connection G_GNUC_UNUSED,
10822+  const gchar *sender G_GNUC_UNUSED,
10823+  const gchar *object_path G_GNUC_UNUSED,
10824+  const gchar *interface_name,
10825+  const gchar *method_name,
10826+  GVariant *parameters,
10827+  GDBusMethodInvocation *invocation,
10828+  gpointer user_data)
10829+{
10830+  GXdpDocumentsSkeleton *skeleton = GXDP_DOCUMENTS_SKELETON (user_data);
10831+  _ExtendedGDBusMethodInfo *info;
10832+  GVariantIter iter;
10833+  GVariant *child;
10834+  GValue *paramv;
10835+  gsize num_params;
10836+  guint num_extra;
10837+  gsize n;
10838+  guint signal_id;
10839+  GValue return_value = G_VALUE_INIT;
10840+  info = (_ExtendedGDBusMethodInfo *) g_dbus_method_invocation_get_method_info (invocation);
10841+  g_assert (info != NULL);
10842+  num_params = g_variant_n_children (parameters);
10843+  num_extra = info->pass_fdlist ? 3 : 2;  paramv = g_new0 (GValue, num_params + num_extra);
10844+  n = 0;
10845+  g_value_init (&paramv[n], GXDP_TYPE_DOCUMENTS);
10846+  g_value_set_object (&paramv[n++], skeleton);
10847+  g_value_init (&paramv[n], G_TYPE_DBUS_METHOD_INVOCATION);
10848+  g_value_set_object (&paramv[n++], invocation);
10849+  if (info->pass_fdlist)
10850+    {
10851+#ifdef G_OS_UNIX
10852+      g_value_init (&paramv[n], G_TYPE_UNIX_FD_LIST);
10853+      g_value_set_object (&paramv[n++], g_dbus_message_get_unix_fd_list (g_dbus_method_invocation_get_message (invocation)));
10854+#else
10855+      g_assert_not_reached ();
10856+#endif
10857+    }
10858+  g_variant_iter_init (&iter, parameters);
10859+  while ((child = g_variant_iter_next_value (&iter)) != NULL)
10860+    {
10861+      _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.in_args[n - num_extra];
10862+      if (arg_info->use_gvariant)
10863+        {
10864+          g_value_init (&paramv[n], G_TYPE_VARIANT);
10865+          g_value_set_variant (&paramv[n], child);
10866+          n++;
10867+        }
10868+      else
10869+        g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
10870+      g_variant_unref (child);
10871+    }
10872+  signal_id = g_signal_lookup (info->signal_name, GXDP_TYPE_DOCUMENTS);
10873+  g_value_init (&return_value, G_TYPE_BOOLEAN);
10874+  g_signal_emitv (paramv, signal_id, 0, &return_value);
10875+  if (!g_value_get_boolean (&return_value))
10876+    g_dbus_method_invocation_return_error (invocation, G_DBUS_ERROR, G_DBUS_ERROR_UNKNOWN_METHOD, "Method %s is not implemented on interface %s", method_name, interface_name);
10877+  g_value_unset (&return_value);
10878+  for (n = 0; n < num_params + num_extra; n++)
10879+    g_value_unset (&paramv[n]);
10880+  g_free (paramv);
10881+}
10882+
10883+static GVariant *
10884+_gxdp_documents_skeleton_handle_get_property (
10885+  GDBusConnection *connection G_GNUC_UNUSED,
10886+  const gchar *sender G_GNUC_UNUSED,
10887+  const gchar *object_path G_GNUC_UNUSED,
10888+  const gchar *interface_name G_GNUC_UNUSED,
10889+  const gchar *property_name,
10890+  GError **error,
10891+  gpointer user_data)
10892+{
10893+  GXdpDocumentsSkeleton *skeleton = GXDP_DOCUMENTS_SKELETON (user_data);
10894+  GValue value = G_VALUE_INIT;
10895+  GParamSpec *pspec;
10896+  _ExtendedGDBusPropertyInfo *info;
10897+  GVariant *ret;
10898+  ret = NULL;
10899+  info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_gxdp_documents_interface_info.parent_struct, property_name);
10900+  g_assert (info != NULL);
10901+  pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
10902+  if (pspec == NULL)
10903+    {
10904+      g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
10905+    }
10906+  else
10907+    {
10908+      g_value_init (&value, pspec->value_type);
10909+      g_object_get_property (G_OBJECT (skeleton), info->hyphen_name, &value);
10910+      ret = g_dbus_gvalue_to_gvariant (&value, G_VARIANT_TYPE (info->parent_struct.signature));
10911+      g_value_unset (&value);
10912+    }
10913+  return ret;
10914+}
10915+
10916+static gboolean
10917+_gxdp_documents_skeleton_handle_set_property (
10918+  GDBusConnection *connection G_GNUC_UNUSED,
10919+  const gchar *sender G_GNUC_UNUSED,
10920+  const gchar *object_path G_GNUC_UNUSED,
10921+  const gchar *interface_name G_GNUC_UNUSED,
10922+  const gchar *property_name,
10923+  GVariant *variant,
10924+  GError **error,
10925+  gpointer user_data)
10926+{
10927+  GXdpDocumentsSkeleton *skeleton = GXDP_DOCUMENTS_SKELETON (user_data);
10928+  GValue value = G_VALUE_INIT;
10929+  GParamSpec *pspec;
10930+  _ExtendedGDBusPropertyInfo *info;
10931+  gboolean ret;
10932+  ret = FALSE;
10933+  info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_gxdp_documents_interface_info.parent_struct, property_name);
10934+  g_assert (info != NULL);
10935+  pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
10936+  if (pspec == NULL)
10937+    {
10938+      g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
10939+    }
10940+  else
10941+    {
10942+      if (info->use_gvariant)
10943+        g_value_set_variant (&value, variant);
10944+      else
10945+        g_dbus_gvariant_to_gvalue (variant, &value);
10946+      g_object_set_property (G_OBJECT (skeleton), info->hyphen_name, &value);
10947+      g_value_unset (&value);
10948+      ret = TRUE;
10949+    }
10950+  return ret;
10951+}
10952+
10953+static const GDBusInterfaceVTable _gxdp_documents_skeleton_vtable =
10954+{
10955+  _gxdp_documents_skeleton_handle_method_call,
10956+  _gxdp_documents_skeleton_handle_get_property,
10957+  _gxdp_documents_skeleton_handle_set_property,
10958+  {NULL}
10959+};
10960+
10961+static GDBusInterfaceInfo *
10962+gxdp_documents_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
10963+{
10964+  return gxdp_documents_interface_info ();
10965+}
10966+
10967+static GDBusInterfaceVTable *
10968+gxdp_documents_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
10969+{
10970+  return (GDBusInterfaceVTable *) &_gxdp_documents_skeleton_vtable;
10971+}
10972+
10973+static GVariant *
10974+gxdp_documents_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton)
10975+{
10976+  GXdpDocumentsSkeleton *skeleton = GXDP_DOCUMENTS_SKELETON (_skeleton);
10977+
10978+  GVariantBuilder builder;
10979+  guint n;
10980+  g_variant_builder_init (&builder, G_VARIANT_TYPE ("a{sv}"));
10981+  if (_gxdp_documents_interface_info.parent_struct.properties == NULL)
10982+    goto out;
10983+  for (n = 0; _gxdp_documents_interface_info.parent_struct.properties[n] != NULL; n++)
10984+    {
10985+      GDBusPropertyInfo *info = _gxdp_documents_interface_info.parent_struct.properties[n];
10986+      if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE)
10987+        {
10988+          GVariant *value;
10989+          value = _gxdp_documents_skeleton_handle_get_property (g_dbus_interface_skeleton_get_connection (G_DBUS_INTERFACE_SKELETON (skeleton)), NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "org.freedesktop.portal.Documents", info->name, NULL, skeleton);
10990+          if (value != NULL)
10991+            {
10992+              g_variant_take_ref (value);
10993+              g_variant_builder_add (&builder, "{sv}", info->name, value);
10994+              g_variant_unref (value);
10995+            }
10996+        }
10997+    }
10998+out:
10999+  return g_variant_builder_end (&builder);
11000+}
11001+
11002+static gboolean _gxdp_documents_emit_changed (gpointer user_data);
11003+
11004+static void
11005+gxdp_documents_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton)
11006+{
11007+  GXdpDocumentsSkeleton *skeleton = GXDP_DOCUMENTS_SKELETON (_skeleton);
11008+  gboolean emit_changed = FALSE;
11009+
11010+  g_mutex_lock (&skeleton->priv->lock);
11011+  if (skeleton->priv->changed_properties_idle_source != NULL)
11012+    {
11013+      g_source_destroy (skeleton->priv->changed_properties_idle_source);
11014+      skeleton->priv->changed_properties_idle_source = NULL;
11015+      emit_changed = TRUE;
11016+    }
11017+  g_mutex_unlock (&skeleton->priv->lock);
11018+
11019+  if (emit_changed)
11020+    _gxdp_documents_emit_changed (skeleton);
11021+}
11022+
11023+static void gxdp_documents_skeleton_iface_init (GXdpDocumentsIface *iface);
11024+#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
11025+G_DEFINE_TYPE_WITH_CODE (GXdpDocumentsSkeleton, gxdp_documents_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
11026+                         G_ADD_PRIVATE (GXdpDocumentsSkeleton)
11027+                         G_IMPLEMENT_INTERFACE (GXDP_TYPE_DOCUMENTS, gxdp_documents_skeleton_iface_init))
11028+
11029+#else
11030+G_DEFINE_TYPE_WITH_CODE (GXdpDocumentsSkeleton, gxdp_documents_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
11031+                         G_IMPLEMENT_INTERFACE (GXDP_TYPE_DOCUMENTS, gxdp_documents_skeleton_iface_init))
11032+
11033+#endif
11034+static void
11035+gxdp_documents_skeleton_finalize (GObject *object)
11036+{
11037+  GXdpDocumentsSkeleton *skeleton = GXDP_DOCUMENTS_SKELETON (object);
11038+  guint n;
11039+  for (n = 0; n < 1; n++)
11040+    g_value_unset (&skeleton->priv->properties[n]);
11041+  g_free (skeleton->priv->properties);
11042+  g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free);
11043+  if (skeleton->priv->changed_properties_idle_source != NULL)
11044+    g_source_destroy (skeleton->priv->changed_properties_idle_source);
11045+  g_main_context_unref (skeleton->priv->context);
11046+  g_mutex_clear (&skeleton->priv->lock);
11047+  G_OBJECT_CLASS (gxdp_documents_skeleton_parent_class)->finalize (object);
11048+}
11049+
11050+static void
11051+gxdp_documents_skeleton_get_property (GObject      *object,
11052+  guint         prop_id,
11053+  GValue       *value,
11054+  GParamSpec   *pspec G_GNUC_UNUSED)
11055+{
11056+  GXdpDocumentsSkeleton *skeleton = GXDP_DOCUMENTS_SKELETON (object);
11057+  g_assert (prop_id != 0 && prop_id - 1 < 1);
11058+  g_mutex_lock (&skeleton->priv->lock);
11059+  g_value_copy (&skeleton->priv->properties[prop_id - 1], value);
11060+  g_mutex_unlock (&skeleton->priv->lock);
11061+}
11062+
11063+static gboolean
11064+_gxdp_documents_emit_changed (gpointer user_data)
11065+{
11066+  GXdpDocumentsSkeleton *skeleton = GXDP_DOCUMENTS_SKELETON (user_data);
11067+  GList *l;
11068+  GVariantBuilder builder;
11069+  GVariantBuilder invalidated_builder;
11070+  guint num_changes;
11071+
11072+  g_mutex_lock (&skeleton->priv->lock);
11073+  g_variant_builder_init (&builder, G_VARIANT_TYPE ("a{sv}"));
11074+  g_variant_builder_init (&invalidated_builder, G_VARIANT_TYPE ("as"));
11075+  for (l = skeleton->priv->changed_properties, num_changes = 0; l != NULL; l = l->next)
11076+    {
11077+      ChangedProperty *cp = l->data;
11078+      GVariant *variant;
11079+      const GValue *cur_value;
11080+
11081+      cur_value = &skeleton->priv->properties[cp->prop_id - 1];
11082+      if (!_g_value_equal (cur_value, &cp->orig_value))
11083+        {
11084+          variant = g_dbus_gvalue_to_gvariant (cur_value, G_VARIANT_TYPE (cp->info->parent_struct.signature));
11085+          g_variant_builder_add (&builder, "{sv}", cp->info->parent_struct.name, variant);
11086+          g_variant_unref (variant);
11087+          num_changes++;
11088+        }
11089+    }
11090+  if (num_changes > 0)
11091+    {
11092+      GList *connections, *ll;
11093+      GVariant *signal_variant;
11094+      signal_variant = g_variant_ref_sink (g_variant_new ("(sa{sv}as)", "org.freedesktop.portal.Documents",
11095+                                           &builder, &invalidated_builder));
11096+      connections = g_dbus_interface_skeleton_get_connections (G_DBUS_INTERFACE_SKELETON (skeleton));
11097+      for (ll = connections; ll != NULL; ll = ll->next)
11098+        {
11099+          GDBusConnection *connection = ll->data;
11100+
11101+          g_dbus_connection_emit_signal (connection,
11102+                                         NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)),
11103+                                         "org.freedesktop.DBus.Properties",
11104+                                         "PropertiesChanged",
11105+                                         signal_variant,
11106+                                         NULL);
11107+        }
11108+      g_variant_unref (signal_variant);
11109+      g_list_free_full (connections, g_object_unref);
11110+    }
11111+  else
11112+    {
11113+      g_variant_builder_clear (&builder);
11114+      g_variant_builder_clear (&invalidated_builder);
11115+    }
11116+  g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free);
11117+  skeleton->priv->changed_properties = NULL;
11118+  skeleton->priv->changed_properties_idle_source = NULL;
11119+  g_mutex_unlock (&skeleton->priv->lock);
11120+  return FALSE;
11121+}
11122+
11123+static void
11124+_gxdp_documents_schedule_emit_changed (GXdpDocumentsSkeleton *skeleton, const _ExtendedGDBusPropertyInfo *info, guint prop_id, const GValue *orig_value)
11125+{
11126+  ChangedProperty *cp;
11127+  GList *l;
11128+  cp = NULL;
11129+  for (l = skeleton->priv->changed_properties; l != NULL; l = l->next)
11130+    {
11131+      ChangedProperty *i_cp = l->data;
11132+      if (i_cp->info == info)
11133+        {
11134+          cp = i_cp;
11135+          break;
11136+        }
11137+    }
11138+  if (cp == NULL)
11139+    {
11140+      cp = g_new0 (ChangedProperty, 1);
11141+      cp->prop_id = prop_id;
11142+      cp->info = info;
11143+      skeleton->priv->changed_properties = g_list_prepend (skeleton->priv->changed_properties, cp);
11144+      g_value_init (&cp->orig_value, G_VALUE_TYPE (orig_value));
11145+      g_value_copy (orig_value, &cp->orig_value);
11146+    }
11147+}
11148+
11149+static void
11150+gxdp_documents_skeleton_notify (GObject      *object,
11151+  GParamSpec *pspec G_GNUC_UNUSED)
11152+{
11153+  GXdpDocumentsSkeleton *skeleton = GXDP_DOCUMENTS_SKELETON (object);
11154+  g_mutex_lock (&skeleton->priv->lock);
11155+  if (skeleton->priv->changed_properties != NULL &&
11156+      skeleton->priv->changed_properties_idle_source == NULL)
11157+    {
11158+      skeleton->priv->changed_properties_idle_source = g_idle_source_new ();
11159+      g_source_set_priority (skeleton->priv->changed_properties_idle_source, G_PRIORITY_DEFAULT);
11160+      g_source_set_callback (skeleton->priv->changed_properties_idle_source, _gxdp_documents_emit_changed, g_object_ref (skeleton), (GDestroyNotify) g_object_unref);
11161+      g_source_set_name (skeleton->priv->changed_properties_idle_source, "[generated] _gxdp_documents_emit_changed");
11162+      g_source_attach (skeleton->priv->changed_properties_idle_source, skeleton->priv->context);
11163+      g_source_unref (skeleton->priv->changed_properties_idle_source);
11164+    }
11165+  g_mutex_unlock (&skeleton->priv->lock);
11166+}
11167+
11168+static void
11169+gxdp_documents_skeleton_set_property (GObject      *object,
11170+  guint         prop_id,
11171+  const GValue *value,
11172+  GParamSpec   *pspec)
11173+{
11174+  const _ExtendedGDBusPropertyInfo *info;
11175+  GXdpDocumentsSkeleton *skeleton = GXDP_DOCUMENTS_SKELETON (object);
11176+  g_assert (prop_id != 0 && prop_id - 1 < 1);
11177+  info = (const _ExtendedGDBusPropertyInfo *) _gxdp_documents_property_info_pointers[prop_id - 1];
11178+  g_mutex_lock (&skeleton->priv->lock);
11179+  g_object_freeze_notify (object);
11180+  if (!_g_value_equal (value, &skeleton->priv->properties[prop_id - 1]))
11181+    {
11182+      if (g_dbus_interface_skeleton_get_connection (G_DBUS_INTERFACE_SKELETON (skeleton)) != NULL &&
11183+          info->emits_changed_signal)
11184+        _gxdp_documents_schedule_emit_changed (skeleton, info, prop_id, &skeleton->priv->properties[prop_id - 1]);
11185+      g_value_copy (value, &skeleton->priv->properties[prop_id - 1]);
11186+      g_object_notify_by_pspec (object, pspec);
11187+    }
11188+  g_mutex_unlock (&skeleton->priv->lock);
11189+  g_object_thaw_notify (object);
11190+}
11191+
11192+static void
11193+gxdp_documents_skeleton_init (GXdpDocumentsSkeleton *skeleton)
11194+{
11195+#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
11196+  skeleton->priv = gxdp_documents_skeleton_get_instance_private (skeleton);
11197+#else
11198+  skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, GXDP_TYPE_DOCUMENTS_SKELETON, GXdpDocumentsSkeletonPrivate);
11199+#endif
11200+
11201+  g_mutex_init (&skeleton->priv->lock);
11202+  skeleton->priv->context = g_main_context_ref_thread_default ();
11203+  skeleton->priv->properties = g_new0 (GValue, 1);
11204+  g_value_init (&skeleton->priv->properties[0], G_TYPE_UINT);
11205+}
11206+
11207+static guint
11208+gxdp_documents_skeleton_get_version (GXdpDocuments *object)
11209+{
11210+  GXdpDocumentsSkeleton *skeleton = GXDP_DOCUMENTS_SKELETON (object);
11211+  guint value;
11212+  g_mutex_lock (&skeleton->priv->lock);
11213+  value = g_value_get_uint (&(skeleton->priv->properties[0]));
11214+  g_mutex_unlock (&skeleton->priv->lock);
11215+  return value;
11216+}
11217+
11218+static void
11219+gxdp_documents_skeleton_class_init (GXdpDocumentsSkeletonClass *klass)
11220+{
11221+  GObjectClass *gobject_class;
11222+  GDBusInterfaceSkeletonClass *skeleton_class;
11223+
11224+  gobject_class = G_OBJECT_CLASS (klass);
11225+  gobject_class->finalize = gxdp_documents_skeleton_finalize;
11226+  gobject_class->get_property = gxdp_documents_skeleton_get_property;
11227+  gobject_class->set_property = gxdp_documents_skeleton_set_property;
11228+  gobject_class->notify       = gxdp_documents_skeleton_notify;
11229+
11230+
11231+  gxdp_documents_override_properties (gobject_class, 1);
11232+
11233+  skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass);
11234+  skeleton_class->get_info = gxdp_documents_skeleton_dbus_interface_get_info;
11235+  skeleton_class->get_properties = gxdp_documents_skeleton_dbus_interface_get_properties;
11236+  skeleton_class->flush = gxdp_documents_skeleton_dbus_interface_flush;
11237+  skeleton_class->get_vtable = gxdp_documents_skeleton_dbus_interface_get_vtable;
11238+
11239+#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
11240+  g_type_class_add_private (klass, sizeof (GXdpDocumentsSkeletonPrivate));
11241+#endif
11242+}
11243+
11244+static void
11245+gxdp_documents_skeleton_iface_init (GXdpDocumentsIface *iface)
11246+{
11247+  iface->get_version = gxdp_documents_skeleton_get_version;
11248+}
11249+
11250+/**
11251+ * gxdp_documents_skeleton_new:
11252+ *
11253+ * Creates a skeleton object for the D-Bus interface <link linkend="gdbus-interface-org-freedesktop-portal-Documents.top_of_page">org.freedesktop.portal.Documents</link>.
11254+ *
11255+ * Returns: (transfer full) (type GXdpDocumentsSkeleton): The skeleton object.
11256+ */
11257+GXdpDocuments *
11258+gxdp_documents_skeleton_new (void)
11259+{
11260+  return GXDP_DOCUMENTS (g_object_new (GXDP_TYPE_DOCUMENTS_SKELETON, NULL));
11261+}
11262+
11263+/* ------------------------------------------------------------------------
11264+ * Code for interface org.freedesktop.portal.OpenURI
11265+ * ------------------------------------------------------------------------
11266+ */
11267+
11268+/**
11269+ * SECTION:GXdpOpenURI
11270+ * @title: GXdpOpenURI
11271+ * @short_description: Generated C code for the org.freedesktop.portal.OpenURI D-Bus interface
11272+ *
11273+ * This section contains code for working with the <link linkend="gdbus-interface-org-freedesktop-portal-OpenURI.top_of_page">org.freedesktop.portal.OpenURI</link> D-Bus interface in C.
11274+ */
11275+
11276+/* ---- Introspection data for org.freedesktop.portal.OpenURI ---- */
11277+
11278+static const _ExtendedGDBusArgInfo _gxdp_open_uri_method_info_open_uri_IN_ARG_parent_window =
11279+{
11280+  {
11281+    -1,
11282+    (gchar *) "parent_window",
11283+    (gchar *) "s",
11284+    NULL
11285+  },
11286+  FALSE
11287+};
11288+
11289+static const _ExtendedGDBusArgInfo _gxdp_open_uri_method_info_open_uri_IN_ARG_uri =
11290+{
11291+  {
11292+    -1,
11293+    (gchar *) "uri",
11294+    (gchar *) "s",
11295+    NULL
11296+  },
11297+  FALSE
11298+};
11299+
11300+static const _ExtendedGDBusArgInfo _gxdp_open_uri_method_info_open_uri_IN_ARG_options =
11301+{
11302+  {
11303+    -1,
11304+    (gchar *) "options",
11305+    (gchar *) "a{sv}",
11306+    NULL
11307+  },
11308+  FALSE
11309+};
11310+
11311+static const GDBusArgInfo * const _gxdp_open_uri_method_info_open_uri_IN_ARG_pointers[] =
11312+{
11313+  &_gxdp_open_uri_method_info_open_uri_IN_ARG_parent_window.parent_struct,
11314+  &_gxdp_open_uri_method_info_open_uri_IN_ARG_uri.parent_struct,
11315+  &_gxdp_open_uri_method_info_open_uri_IN_ARG_options.parent_struct,
11316+  NULL
11317+};
11318+
11319+static const _ExtendedGDBusArgInfo _gxdp_open_uri_method_info_open_uri_OUT_ARG_handle =
11320+{
11321+  {
11322+    -1,
11323+    (gchar *) "handle",
11324+    (gchar *) "o",
11325+    NULL
11326+  },
11327+  FALSE
11328+};
11329+
11330+static const GDBusArgInfo * const _gxdp_open_uri_method_info_open_uri_OUT_ARG_pointers[] =
11331+{
11332+  &_gxdp_open_uri_method_info_open_uri_OUT_ARG_handle.parent_struct,
11333+  NULL
11334+};
11335+
11336+static const _ExtendedGDBusMethodInfo _gxdp_open_uri_method_info_open_uri =
11337+{
11338+  {
11339+    -1,
11340+    (gchar *) "OpenURI",
11341+    (GDBusArgInfo **) &_gxdp_open_uri_method_info_open_uri_IN_ARG_pointers,
11342+    (GDBusArgInfo **) &_gxdp_open_uri_method_info_open_uri_OUT_ARG_pointers,
11343+    NULL
11344+  },
11345+  "handle-open-uri",
11346+  FALSE
11347+};
11348+
11349+static const _ExtendedGDBusArgInfo _gxdp_open_uri_method_info_open_file_IN_ARG_parent_window =
11350+{
11351+  {
11352+    -1,
11353+    (gchar *) "parent_window",
11354+    (gchar *) "s",
11355+    NULL
11356+  },
11357+  FALSE
11358+};
11359+
11360+static const _ExtendedGDBusArgInfo _gxdp_open_uri_method_info_open_file_IN_ARG_fd =
11361+{
11362+  {
11363+    -1,
11364+    (gchar *) "fd",
11365+    (gchar *) "h",
11366+    NULL
11367+  },
11368+  FALSE
11369+};
11370+
11371+static const _ExtendedGDBusArgInfo _gxdp_open_uri_method_info_open_file_IN_ARG_options =
11372+{
11373+  {
11374+    -1,
11375+    (gchar *) "options",
11376+    (gchar *) "a{sv}",
11377+    NULL
11378+  },
11379+  FALSE
11380+};
11381+
11382+static const GDBusArgInfo * const _gxdp_open_uri_method_info_open_file_IN_ARG_pointers[] =
11383+{
11384+  &_gxdp_open_uri_method_info_open_file_IN_ARG_parent_window.parent_struct,
11385+  &_gxdp_open_uri_method_info_open_file_IN_ARG_fd.parent_struct,
11386+  &_gxdp_open_uri_method_info_open_file_IN_ARG_options.parent_struct,
11387+  NULL
11388+};
11389+
11390+static const _ExtendedGDBusArgInfo _gxdp_open_uri_method_info_open_file_OUT_ARG_handle =
11391+{
11392+  {
11393+    -1,
11394+    (gchar *) "handle",
11395+    (gchar *) "o",
11396+    NULL
11397+  },
11398+  FALSE
11399+};
11400+
11401+static const GDBusArgInfo * const _gxdp_open_uri_method_info_open_file_OUT_ARG_pointers[] =
11402+{
11403+  &_gxdp_open_uri_method_info_open_file_OUT_ARG_handle.parent_struct,
11404+  NULL
11405+};
11406+
11407+static const _ExtendedGDBusMethodInfo _gxdp_open_uri_method_info_open_file =
11408+{
11409+  {
11410+    -1,
11411+    (gchar *) "OpenFile",
11412+    (GDBusArgInfo **) &_gxdp_open_uri_method_info_open_file_IN_ARG_pointers,
11413+    (GDBusArgInfo **) &_gxdp_open_uri_method_info_open_file_OUT_ARG_pointers,
11414+    NULL
11415+  },
11416+  "handle-open-file",
11417+  TRUE
11418+};
11419+
11420+static const _ExtendedGDBusArgInfo _gxdp_open_uri_method_info_open_directory_IN_ARG_parent_window =
11421+{
11422+  {
11423+    -1,
11424+    (gchar *) "parent_window",
11425+    (gchar *) "s",
11426+    NULL
11427+  },
11428+  FALSE
11429+};
11430+
11431+static const _ExtendedGDBusArgInfo _gxdp_open_uri_method_info_open_directory_IN_ARG_fd =
11432+{
11433+  {
11434+    -1,
11435+    (gchar *) "fd",
11436+    (gchar *) "h",
11437+    NULL
11438+  },
11439+  FALSE
11440+};
11441+
11442+static const _ExtendedGDBusArgInfo _gxdp_open_uri_method_info_open_directory_IN_ARG_options =
11443+{
11444+  {
11445+    -1,
11446+    (gchar *) "options",
11447+    (gchar *) "a{sv}",
11448+    NULL
11449+  },
11450+  FALSE
11451+};
11452+
11453+static const GDBusArgInfo * const _gxdp_open_uri_method_info_open_directory_IN_ARG_pointers[] =
11454+{
11455+  &_gxdp_open_uri_method_info_open_directory_IN_ARG_parent_window.parent_struct,
11456+  &_gxdp_open_uri_method_info_open_directory_IN_ARG_fd.parent_struct,
11457+  &_gxdp_open_uri_method_info_open_directory_IN_ARG_options.parent_struct,
11458+  NULL
11459+};
11460+
11461+static const _ExtendedGDBusArgInfo _gxdp_open_uri_method_info_open_directory_OUT_ARG_handle =
11462+{
11463+  {
11464+    -1,
11465+    (gchar *) "handle",
11466+    (gchar *) "o",
11467+    NULL
11468+  },
11469+  FALSE
11470+};
11471+
11472+static const GDBusArgInfo * const _gxdp_open_uri_method_info_open_directory_OUT_ARG_pointers[] =
11473+{
11474+  &_gxdp_open_uri_method_info_open_directory_OUT_ARG_handle.parent_struct,
11475+  NULL
11476+};
11477+
11478+static const _ExtendedGDBusMethodInfo _gxdp_open_uri_method_info_open_directory =
11479+{
11480+  {
11481+    -1,
11482+    (gchar *) "OpenDirectory",
11483+    (GDBusArgInfo **) &_gxdp_open_uri_method_info_open_directory_IN_ARG_pointers,
11484+    (GDBusArgInfo **) &_gxdp_open_uri_method_info_open_directory_OUT_ARG_pointers,
11485+    NULL
11486+  },
11487+  "handle-open-directory",
11488+  TRUE
11489+};
11490+
11491+static const GDBusMethodInfo * const _gxdp_open_uri_method_info_pointers[] =
11492+{
11493+  &_gxdp_open_uri_method_info_open_uri.parent_struct,
11494+  &_gxdp_open_uri_method_info_open_file.parent_struct,
11495+  &_gxdp_open_uri_method_info_open_directory.parent_struct,
11496+  NULL
11497+};
11498+
11499+static const _ExtendedGDBusPropertyInfo _gxdp_open_uri_property_info_version =
11500+{
11501+  {
11502+    -1,
11503+    (gchar *) "version",
11504+    (gchar *) "u",
11505+    G_DBUS_PROPERTY_INFO_FLAGS_READABLE,
11506+    NULL
11507+  },
11508+  "version",
11509+  FALSE,
11510+  TRUE
11511+};
11512+
11513+static const GDBusPropertyInfo * const _gxdp_open_uri_property_info_pointers[] =
11514+{
11515+  &_gxdp_open_uri_property_info_version.parent_struct,
11516+  NULL
11517+};
11518+
11519+static const _ExtendedGDBusInterfaceInfo _gxdp_open_uri_interface_info =
11520+{
11521+  {
11522+    -1,
11523+    (gchar *) "org.freedesktop.portal.OpenURI",
11524+    (GDBusMethodInfo **) &_gxdp_open_uri_method_info_pointers,
11525+    NULL,
11526+    (GDBusPropertyInfo **) &_gxdp_open_uri_property_info_pointers,
11527+    NULL
11528+  },
11529+  "open-uri",
11530+};
11531+
11532+
11533+/**
11534+ * gxdp_open_uri_interface_info:
11535+ *
11536+ * Gets a machine-readable description of the <link linkend="gdbus-interface-org-freedesktop-portal-OpenURI.top_of_page">org.freedesktop.portal.OpenURI</link> D-Bus interface.
11537+ *
11538+ * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free.
11539+ */
11540+GDBusInterfaceInfo *
11541+gxdp_open_uri_interface_info (void)
11542+{
11543+  return (GDBusInterfaceInfo *) &_gxdp_open_uri_interface_info.parent_struct;
11544+}
11545+
11546+/**
11547+ * gxdp_open_uri_override_properties:
11548+ * @klass: The class structure for a #GObject derived class.
11549+ * @property_id_begin: The property id to assign to the first overridden property.
11550+ *
11551+ * Overrides all #GObject properties in the #GXdpOpenURI interface for a concrete class.
11552+ * The properties are overridden in the order they are defined.
11553+ *
11554+ * Returns: The last property id.
11555+ */
11556+guint
11557+gxdp_open_uri_override_properties (GObjectClass *klass, guint property_id_begin)
11558+{
11559+  g_object_class_override_property (klass, property_id_begin++, "version");
11560+  return property_id_begin - 1;
11561+}
11562+
11563+
11564+
11565+/**
11566+ * GXdpOpenURI:
11567+ *
11568+ * Abstract interface type for the D-Bus interface <link linkend="gdbus-interface-org-freedesktop-portal-OpenURI.top_of_page">org.freedesktop.portal.OpenURI</link>.
11569+ */
11570+
11571+/**
11572+ * GXdpOpenURIIface:
11573+ * @parent_iface: The parent interface.
11574+ * @handle_open_directory: Handler for the #GXdpOpenURI::handle-open-directory signal.
11575+ * @handle_open_file: Handler for the #GXdpOpenURI::handle-open-file signal.
11576+ * @handle_open_uri: Handler for the #GXdpOpenURI::handle-open-uri signal.
11577+ * @get_version: Getter for the #GXdpOpenURI:version property.
11578+ *
11579+ * Virtual table for the D-Bus interface <link linkend="gdbus-interface-org-freedesktop-portal-OpenURI.top_of_page">org.freedesktop.portal.OpenURI</link>.
11580+ */
11581+
11582+typedef GXdpOpenURIIface GXdpOpenURIInterface;
11583+G_DEFINE_INTERFACE (GXdpOpenURI, gxdp_open_uri, G_TYPE_OBJECT)
11584+
11585+static void
11586+gxdp_open_uri_default_init (GXdpOpenURIIface *iface)
11587+{
11588+  /* GObject signals for incoming D-Bus method calls: */
11589+  /**
11590+   * GXdpOpenURI::handle-open-uri:
11591+   * @object: A #GXdpOpenURI.
11592+   * @invocation: A #GDBusMethodInvocation.
11593+   * @arg_parent_window: Argument passed by remote caller.
11594+   * @arg_uri: Argument passed by remote caller.
11595+   * @arg_options: Argument passed by remote caller.
11596+   *
11597+   * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-freedesktop-portal-OpenURI.OpenURI">OpenURI()</link> D-Bus method.
11598+   *
11599+   * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call gxdp_open_uri_complete_open_uri() or e.g. g_dbus_method_invocation_return_error() on it) and no other signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
11600+   *
11601+   * Returns: %G_DBUS_METHOD_INVOCATION_HANDLED or %TRUE if the invocation was handled, %G_DBUS_METHOD_INVOCATION_UNHANDLED or %FALSE to let other signal handlers run.
11602+   */
11603+  g_signal_new ("handle-open-uri",
11604+    G_TYPE_FROM_INTERFACE (iface),
11605+    G_SIGNAL_RUN_LAST,
11606+    G_STRUCT_OFFSET (GXdpOpenURIIface, handle_open_uri),
11607+    g_signal_accumulator_true_handled,
11608+    NULL,
11609+    g_cclosure_marshal_generic,
11610+    G_TYPE_BOOLEAN,
11611+    4,
11612+    G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_VARIANT);
11613+
11614+  /**
11615+   * GXdpOpenURI::handle-open-file:
11616+   * @object: A #GXdpOpenURI.
11617+   * @invocation: A #GDBusMethodInvocation.
11618+   * @fd_list: (nullable): A #GUnixFDList or %NULL.
11619+   * @arg_parent_window: Argument passed by remote caller.
11620+   * @arg_fd: Argument passed by remote caller.
11621+   * @arg_options: Argument passed by remote caller.
11622+   *
11623+   * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-freedesktop-portal-OpenURI.OpenFile">OpenFile()</link> D-Bus method.
11624+   *
11625+   * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call gxdp_open_uri_complete_open_file() or e.g. g_dbus_method_invocation_return_error() on it) and no other signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
11626+   *
11627+   * Returns: %G_DBUS_METHOD_INVOCATION_HANDLED or %TRUE if the invocation was handled, %G_DBUS_METHOD_INVOCATION_UNHANDLED or %FALSE to let other signal handlers run.
11628+   */
11629+  g_signal_new ("handle-open-file",
11630+    G_TYPE_FROM_INTERFACE (iface),
11631+    G_SIGNAL_RUN_LAST,
11632+    G_STRUCT_OFFSET (GXdpOpenURIIface, handle_open_file),
11633+    g_signal_accumulator_true_handled,
11634+    NULL,
11635+    g_cclosure_marshal_generic,
11636+    G_TYPE_BOOLEAN,
11637+    5,
11638+    G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_UNIX_FD_LIST, G_TYPE_STRING, G_TYPE_VARIANT, G_TYPE_VARIANT);
11639+
11640+  /**
11641+   * GXdpOpenURI::handle-open-directory:
11642+   * @object: A #GXdpOpenURI.
11643+   * @invocation: A #GDBusMethodInvocation.
11644+   * @fd_list: (nullable): A #GUnixFDList or %NULL.
11645+   * @arg_parent_window: Argument passed by remote caller.
11646+   * @arg_fd: Argument passed by remote caller.
11647+   * @arg_options: Argument passed by remote caller.
11648+   *
11649+   * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-freedesktop-portal-OpenURI.OpenDirectory">OpenDirectory()</link> D-Bus method.
11650+   *
11651+   * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call gxdp_open_uri_complete_open_directory() or e.g. g_dbus_method_invocation_return_error() on it) and no other signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
11652+   *
11653+   * Returns: %G_DBUS_METHOD_INVOCATION_HANDLED or %TRUE if the invocation was handled, %G_DBUS_METHOD_INVOCATION_UNHANDLED or %FALSE to let other signal handlers run.
11654+   */
11655+  g_signal_new ("handle-open-directory",
11656+    G_TYPE_FROM_INTERFACE (iface),
11657+    G_SIGNAL_RUN_LAST,
11658+    G_STRUCT_OFFSET (GXdpOpenURIIface, handle_open_directory),
11659+    g_signal_accumulator_true_handled,
11660+    NULL,
11661+    g_cclosure_marshal_generic,
11662+    G_TYPE_BOOLEAN,
11663+    5,
11664+    G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_UNIX_FD_LIST, G_TYPE_STRING, G_TYPE_VARIANT, G_TYPE_VARIANT);
11665+
11666+  /* GObject properties for D-Bus properties: */
11667+  /**
11668+   * GXdpOpenURI:version:
11669+   *
11670+   * Represents the D-Bus property <link linkend="gdbus-property-org-freedesktop-portal-OpenURI.version">"version"</link>.
11671+   *
11672+   * Since the D-Bus property for this #GObject property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.
11673+   */
11674+  g_object_interface_install_property (iface,
11675+    g_param_spec_uint ("version", "version", "version", 0, G_MAXUINT32, 0, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
11676+}
11677+
11678+/**
11679+ * gxdp_open_uri_get_version: (skip)
11680+ * @object: A #GXdpOpenURI.
11681+ *
11682+ * Gets the value of the <link linkend="gdbus-property-org-freedesktop-portal-OpenURI.version">"version"</link> D-Bus property.
11683+ *
11684+ * Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
11685+ *
11686+ * Returns: The property value.
11687+ */
11688+guint
11689+gxdp_open_uri_get_version (GXdpOpenURI *object)
11690+{
11691+  return GXDP_OPEN_URI_GET_IFACE (object)->get_version (object);
11692+}
11693+
11694+/**
11695+ * gxdp_open_uri_set_version: (skip)
11696+ * @object: A #GXdpOpenURI.
11697+ * @value: The value to set.
11698+ *
11699+ * Sets the <link linkend="gdbus-property-org-freedesktop-portal-OpenURI.version">"version"</link> D-Bus property to @value.
11700+ *
11701+ * Since this D-Bus property is not writable, it is only meaningful to use this function on the service-side.
11702+ */
11703+void
11704+gxdp_open_uri_set_version (GXdpOpenURI *object, guint value)
11705+{
11706+  g_object_set (G_OBJECT (object), "version", value, NULL);
11707+}
11708+
11709+/**
11710+ * gxdp_open_uri_call_open_uri:
11711+ * @proxy: A #GXdpOpenURIProxy.
11712+ * @arg_parent_window: Argument to pass with the method invocation.
11713+ * @arg_uri: Argument to pass with the method invocation.
11714+ * @arg_options: Argument to pass with the method invocation.
11715+ * @cancellable: (nullable): A #GCancellable or %NULL.
11716+ * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
11717+ * @user_data: User data to pass to @callback.
11718+ *
11719+ * Asynchronously invokes the <link linkend="gdbus-method-org-freedesktop-portal-OpenURI.OpenURI">OpenURI()</link> D-Bus method on @proxy.
11720+ * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from (see g_main_context_push_thread_default()).
11721+ * You can then call gxdp_open_uri_call_open_uri_finish() to get the result of the operation.
11722+ *
11723+ * See gxdp_open_uri_call_open_uri_sync() for the synchronous, blocking version of this method.
11724+ */
11725+void
11726+gxdp_open_uri_call_open_uri (
11727+    GXdpOpenURI *proxy,
11728+    const gchar *arg_parent_window,
11729+    const gchar *arg_uri,
11730+    GVariant *arg_options,
11731+    GCancellable *cancellable,
11732+    GAsyncReadyCallback callback,
11733+    gpointer user_data)
11734+{
11735+  g_dbus_proxy_call (G_DBUS_PROXY (proxy),
11736+    "OpenURI",
11737+    g_variant_new ("(ss@a{sv})",
11738+                   arg_parent_window,
11739+                   arg_uri,
11740+                   arg_options),
11741+    G_DBUS_CALL_FLAGS_NONE,
11742+    -1,
11743+    cancellable,
11744+    callback,
11745+    user_data);
11746+}
11747+
11748+/**
11749+ * gxdp_open_uri_call_open_uri_finish:
11750+ * @proxy: A #GXdpOpenURIProxy.
11751+ * @out_handle: (out) (optional): Return location for return parameter or %NULL to ignore.
11752+ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to gxdp_open_uri_call_open_uri().
11753+ * @error: Return location for error or %NULL.
11754+ *
11755+ * Finishes an operation started with gxdp_open_uri_call_open_uri().
11756+ *
11757+ * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
11758+ */
11759+gboolean
11760+gxdp_open_uri_call_open_uri_finish (
11761+    GXdpOpenURI *proxy,
11762+    gchar **out_handle,
11763+    GAsyncResult *res,
11764+    GError **error)
11765+{
11766+  GVariant *_ret;
11767+  _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
11768+  if (_ret == NULL)
11769+    goto _out;
11770+  g_variant_get (_ret,
11771+                 "(o)",
11772+                 out_handle);
11773+  g_variant_unref (_ret);
11774+_out:
11775+  return _ret != NULL;
11776+}
11777+
11778+/**
11779+ * gxdp_open_uri_call_open_uri_sync:
11780+ * @proxy: A #GXdpOpenURIProxy.
11781+ * @arg_parent_window: Argument to pass with the method invocation.
11782+ * @arg_uri: Argument to pass with the method invocation.
11783+ * @arg_options: Argument to pass with the method invocation.
11784+ * @out_handle: (out) (optional): Return location for return parameter or %NULL to ignore.
11785+ * @cancellable: (nullable): A #GCancellable or %NULL.
11786+ * @error: Return location for error or %NULL.
11787+ *
11788+ * Synchronously invokes the <link linkend="gdbus-method-org-freedesktop-portal-OpenURI.OpenURI">OpenURI()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
11789+ *
11790+ * See gxdp_open_uri_call_open_uri() for the asynchronous version of this method.
11791+ *
11792+ * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
11793+ */
11794+gboolean
11795+gxdp_open_uri_call_open_uri_sync (
11796+    GXdpOpenURI *proxy,
11797+    const gchar *arg_parent_window,
11798+    const gchar *arg_uri,
11799+    GVariant *arg_options,
11800+    gchar **out_handle,
11801+    GCancellable *cancellable,
11802+    GError **error)
11803+{
11804+  GVariant *_ret;
11805+  _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
11806+    "OpenURI",
11807+    g_variant_new ("(ss@a{sv})",
11808+                   arg_parent_window,
11809+                   arg_uri,
11810+                   arg_options),
11811+    G_DBUS_CALL_FLAGS_NONE,
11812+    -1,
11813+    cancellable,
11814+    error);
11815+  if (_ret == NULL)
11816+    goto _out;
11817+  g_variant_get (_ret,
11818+                 "(o)",
11819+                 out_handle);
11820+  g_variant_unref (_ret);
11821+_out:
11822+  return _ret != NULL;
11823+}
11824+
11825+/**
11826+ * gxdp_open_uri_call_open_file:
11827+ * @proxy: A #GXdpOpenURIProxy.
11828+ * @arg_parent_window: Argument to pass with the method invocation.
11829+ * @arg_fd: Argument to pass with the method invocation.
11830+ * @arg_options: Argument to pass with the method invocation.
11831+ * @fd_list: (nullable): A #GUnixFDList or %NULL.
11832+ * @cancellable: (nullable): A #GCancellable or %NULL.
11833+ * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
11834+ * @user_data: User data to pass to @callback.
11835+ *
11836+ * Asynchronously invokes the <link linkend="gdbus-method-org-freedesktop-portal-OpenURI.OpenFile">OpenFile()</link> D-Bus method on @proxy.
11837+ * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from (see g_main_context_push_thread_default()).
11838+ * You can then call gxdp_open_uri_call_open_file_finish() to get the result of the operation.
11839+ *
11840+ * See gxdp_open_uri_call_open_file_sync() for the synchronous, blocking version of this method.
11841+ */
11842+void
11843+gxdp_open_uri_call_open_file (
11844+    GXdpOpenURI *proxy,
11845+    const gchar *arg_parent_window,
11846+    GVariant *arg_fd,
11847+    GVariant *arg_options,
11848+    GUnixFDList *fd_list,
11849+    GCancellable *cancellable,
11850+    GAsyncReadyCallback callback,
11851+    gpointer user_data)
11852+{
11853+  g_dbus_proxy_call_with_unix_fd_list (G_DBUS_PROXY (proxy),
11854+    "OpenFile",
11855+    g_variant_new ("(s@h@a{sv})",
11856+                   arg_parent_window,
11857+                   arg_fd,
11858+                   arg_options),
11859+    G_DBUS_CALL_FLAGS_NONE,
11860+    -1,
11861+    fd_list,
11862+    cancellable,
11863+    callback,
11864+    user_data);
11865+}
11866+
11867+/**
11868+ * gxdp_open_uri_call_open_file_finish:
11869+ * @proxy: A #GXdpOpenURIProxy.
11870+ * @out_handle: (out) (optional): Return location for return parameter or %NULL to ignore.
11871+ * @out_fd_list: (out) (optional): Return location for a #GUnixFDList or %NULL to ignore.
11872+ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to gxdp_open_uri_call_open_file().
11873+ * @error: Return location for error or %NULL.
11874+ *
11875+ * Finishes an operation started with gxdp_open_uri_call_open_file().
11876+ *
11877+ * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
11878+ */
11879+gboolean
11880+gxdp_open_uri_call_open_file_finish (
11881+    GXdpOpenURI *proxy,
11882+    gchar **out_handle,
11883+    GUnixFDList **out_fd_list,
11884+    GAsyncResult *res,
11885+    GError **error)
11886+{
11887+  GVariant *_ret;
11888+  _ret = g_dbus_proxy_call_with_unix_fd_list_finish (G_DBUS_PROXY (proxy), out_fd_list, res, error);
11889+  if (_ret == NULL)
11890+    goto _out;
11891+  g_variant_get (_ret,
11892+                 "(o)",
11893+                 out_handle);
11894+  g_variant_unref (_ret);
11895+_out:
11896+  return _ret != NULL;
11897+}
11898+
11899+/**
11900+ * gxdp_open_uri_call_open_file_sync:
11901+ * @proxy: A #GXdpOpenURIProxy.
11902+ * @arg_parent_window: Argument to pass with the method invocation.
11903+ * @arg_fd: Argument to pass with the method invocation.
11904+ * @arg_options: Argument to pass with the method invocation.
11905+ * @fd_list: (nullable): A #GUnixFDList or %NULL.
11906+ * @out_handle: (out) (optional): Return location for return parameter or %NULL to ignore.
11907+ * @out_fd_list: (out): Return location for a #GUnixFDList or %NULL.
11908+ * @cancellable: (nullable): A #GCancellable or %NULL.
11909+ * @error: Return location for error or %NULL.
11910+ *
11911+ * Synchronously invokes the <link linkend="gdbus-method-org-freedesktop-portal-OpenURI.OpenFile">OpenFile()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
11912+ *
11913+ * See gxdp_open_uri_call_open_file() for the asynchronous version of this method.
11914+ *
11915+ * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
11916+ */
11917+gboolean
11918+gxdp_open_uri_call_open_file_sync (
11919+    GXdpOpenURI *proxy,
11920+    const gchar *arg_parent_window,
11921+    GVariant *arg_fd,
11922+    GVariant *arg_options,
11923+    GUnixFDList  *fd_list,
11924+    gchar **out_handle,
11925+    GUnixFDList **out_fd_list,
11926+    GCancellable *cancellable,
11927+    GError **error)
11928+{
11929+  GVariant *_ret;
11930+  _ret = g_dbus_proxy_call_with_unix_fd_list_sync (G_DBUS_PROXY (proxy),
11931+    "OpenFile",
11932+    g_variant_new ("(s@h@a{sv})",
11933+                   arg_parent_window,
11934+                   arg_fd,
11935+                   arg_options),
11936+    G_DBUS_CALL_FLAGS_NONE,
11937+    -1,
11938+    fd_list,
11939+    out_fd_list,
11940+    cancellable,
11941+    error);
11942+  if (_ret == NULL)
11943+    goto _out;
11944+  g_variant_get (_ret,
11945+                 "(o)",
11946+                 out_handle);
11947+  g_variant_unref (_ret);
11948+_out:
11949+  return _ret != NULL;
11950+}
11951+
11952+/**
11953+ * gxdp_open_uri_call_open_directory:
11954+ * @proxy: A #GXdpOpenURIProxy.
11955+ * @arg_parent_window: Argument to pass with the method invocation.
11956+ * @arg_fd: Argument to pass with the method invocation.
11957+ * @arg_options: Argument to pass with the method invocation.
11958+ * @fd_list: (nullable): A #GUnixFDList or %NULL.
11959+ * @cancellable: (nullable): A #GCancellable or %NULL.
11960+ * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
11961+ * @user_data: User data to pass to @callback.
11962+ *
11963+ * Asynchronously invokes the <link linkend="gdbus-method-org-freedesktop-portal-OpenURI.OpenDirectory">OpenDirectory()</link> D-Bus method on @proxy.
11964+ * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from (see g_main_context_push_thread_default()).
11965+ * You can then call gxdp_open_uri_call_open_directory_finish() to get the result of the operation.
11966+ *
11967+ * See gxdp_open_uri_call_open_directory_sync() for the synchronous, blocking version of this method.
11968+ */
11969+void
11970+gxdp_open_uri_call_open_directory (
11971+    GXdpOpenURI *proxy,
11972+    const gchar *arg_parent_window,
11973+    GVariant *arg_fd,
11974+    GVariant *arg_options,
11975+    GUnixFDList *fd_list,
11976+    GCancellable *cancellable,
11977+    GAsyncReadyCallback callback,
11978+    gpointer user_data)
11979+{
11980+  g_dbus_proxy_call_with_unix_fd_list (G_DBUS_PROXY (proxy),
11981+    "OpenDirectory",
11982+    g_variant_new ("(s@h@a{sv})",
11983+                   arg_parent_window,
11984+                   arg_fd,
11985+                   arg_options),
11986+    G_DBUS_CALL_FLAGS_NONE,
11987+    -1,
11988+    fd_list,
11989+    cancellable,
11990+    callback,
11991+    user_data);
11992+}
11993+
11994+/**
11995+ * gxdp_open_uri_call_open_directory_finish:
11996+ * @proxy: A #GXdpOpenURIProxy.
11997+ * @out_handle: (out) (optional): Return location for return parameter or %NULL to ignore.
11998+ * @out_fd_list: (out) (optional): Return location for a #GUnixFDList or %NULL to ignore.
11999+ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to gxdp_open_uri_call_open_directory().
12000+ * @error: Return location for error or %NULL.
12001+ *
12002+ * Finishes an operation started with gxdp_open_uri_call_open_directory().
12003+ *
12004+ * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
12005+ */
12006+gboolean
12007+gxdp_open_uri_call_open_directory_finish (
12008+    GXdpOpenURI *proxy,
12009+    gchar **out_handle,
12010+    GUnixFDList **out_fd_list,
12011+    GAsyncResult *res,
12012+    GError **error)
12013+{
12014+  GVariant *_ret;
12015+  _ret = g_dbus_proxy_call_with_unix_fd_list_finish (G_DBUS_PROXY (proxy), out_fd_list, res, error);
12016+  if (_ret == NULL)
12017+    goto _out;
12018+  g_variant_get (_ret,
12019+                 "(o)",
12020+                 out_handle);
12021+  g_variant_unref (_ret);
12022+_out:
12023+  return _ret != NULL;
12024+}
12025+
12026+/**
12027+ * gxdp_open_uri_call_open_directory_sync:
12028+ * @proxy: A #GXdpOpenURIProxy.
12029+ * @arg_parent_window: Argument to pass with the method invocation.
12030+ * @arg_fd: Argument to pass with the method invocation.
12031+ * @arg_options: Argument to pass with the method invocation.
12032+ * @fd_list: (nullable): A #GUnixFDList or %NULL.
12033+ * @out_handle: (out) (optional): Return location for return parameter or %NULL to ignore.
12034+ * @out_fd_list: (out): Return location for a #GUnixFDList or %NULL.
12035+ * @cancellable: (nullable): A #GCancellable or %NULL.
12036+ * @error: Return location for error or %NULL.
12037+ *
12038+ * Synchronously invokes the <link linkend="gdbus-method-org-freedesktop-portal-OpenURI.OpenDirectory">OpenDirectory()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
12039+ *
12040+ * See gxdp_open_uri_call_open_directory() for the asynchronous version of this method.
12041+ *
12042+ * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
12043+ */
12044+gboolean
12045+gxdp_open_uri_call_open_directory_sync (
12046+    GXdpOpenURI *proxy,
12047+    const gchar *arg_parent_window,
12048+    GVariant *arg_fd,
12049+    GVariant *arg_options,
12050+    GUnixFDList  *fd_list,
12051+    gchar **out_handle,
12052+    GUnixFDList **out_fd_list,
12053+    GCancellable *cancellable,
12054+    GError **error)
12055+{
12056+  GVariant *_ret;
12057+  _ret = g_dbus_proxy_call_with_unix_fd_list_sync (G_DBUS_PROXY (proxy),
12058+    "OpenDirectory",
12059+    g_variant_new ("(s@h@a{sv})",
12060+                   arg_parent_window,
12061+                   arg_fd,
12062+                   arg_options),
12063+    G_DBUS_CALL_FLAGS_NONE,
12064+    -1,
12065+    fd_list,
12066+    out_fd_list,
12067+    cancellable,
12068+    error);
12069+  if (_ret == NULL)
12070+    goto _out;
12071+  g_variant_get (_ret,
12072+                 "(o)",
12073+                 out_handle);
12074+  g_variant_unref (_ret);
12075+_out:
12076+  return _ret != NULL;
12077+}
12078+
12079+/**
12080+ * gxdp_open_uri_complete_open_uri:
12081+ * @object: A #GXdpOpenURI.
12082+ * @invocation: (transfer full): A #GDBusMethodInvocation.
12083+ * @handle: Parameter to return.
12084+ *
12085+ * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-freedesktop-portal-OpenURI.OpenURI">OpenURI()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
12086+ *
12087+ * This method will free @invocation, you cannot use it afterwards.
12088+ */
12089+void
12090+gxdp_open_uri_complete_open_uri (
12091+    GXdpOpenURI *object G_GNUC_UNUSED,
12092+    GDBusMethodInvocation *invocation,
12093+    const gchar *handle)
12094+{
12095+  g_dbus_method_invocation_return_value (invocation,
12096+    g_variant_new ("(o)",
12097+                   handle));
12098+}
12099+
12100+/**
12101+ * gxdp_open_uri_complete_open_file:
12102+ * @object: A #GXdpOpenURI.
12103+ * @invocation: (transfer full): A #GDBusMethodInvocation.
12104+ * @fd_list: (nullable): A #GUnixFDList or %NULL.
12105+ * @handle: Parameter to return.
12106+ *
12107+ * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-freedesktop-portal-OpenURI.OpenFile">OpenFile()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
12108+ *
12109+ * This method will free @invocation, you cannot use it afterwards.
12110+ */
12111+void
12112+gxdp_open_uri_complete_open_file (
12113+    GXdpOpenURI *object G_GNUC_UNUSED,
12114+    GDBusMethodInvocation *invocation,
12115+    GUnixFDList *fd_list,
12116+    const gchar *handle)
12117+{
12118+  g_dbus_method_invocation_return_value_with_unix_fd_list (invocation,
12119+    g_variant_new ("(o)",
12120+                   handle),
12121+    fd_list);
12122+}
12123+
12124+/**
12125+ * gxdp_open_uri_complete_open_directory:
12126+ * @object: A #GXdpOpenURI.
12127+ * @invocation: (transfer full): A #GDBusMethodInvocation.
12128+ * @fd_list: (nullable): A #GUnixFDList or %NULL.
12129+ * @handle: Parameter to return.
12130+ *
12131+ * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-freedesktop-portal-OpenURI.OpenDirectory">OpenDirectory()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
12132+ *
12133+ * This method will free @invocation, you cannot use it afterwards.
12134+ */
12135+void
12136+gxdp_open_uri_complete_open_directory (
12137+    GXdpOpenURI *object G_GNUC_UNUSED,
12138+    GDBusMethodInvocation *invocation,
12139+    GUnixFDList *fd_list,
12140+    const gchar *handle)
12141+{
12142+  g_dbus_method_invocation_return_value_with_unix_fd_list (invocation,
12143+    g_variant_new ("(o)",
12144+                   handle),
12145+    fd_list);
12146+}
12147+
12148+/* ------------------------------------------------------------------------ */
12149+
12150+/**
12151+ * GXdpOpenURIProxy:
12152+ *
12153+ * The #GXdpOpenURIProxy structure contains only private data and should only be accessed using the provided API.
12154+ */
12155+
12156+/**
12157+ * GXdpOpenURIProxyClass:
12158+ * @parent_class: The parent class.
12159+ *
12160+ * Class structure for #GXdpOpenURIProxy.
12161+ */
12162+
12163+struct _GXdpOpenURIProxyPrivate
12164+{
12165+  GData *qdata;
12166+};
12167+
12168+static void gxdp_open_uri_proxy_iface_init (GXdpOpenURIIface *iface);
12169+
12170+#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
12171+G_DEFINE_TYPE_WITH_CODE (GXdpOpenURIProxy, gxdp_open_uri_proxy, G_TYPE_DBUS_PROXY,
12172+                         G_ADD_PRIVATE (GXdpOpenURIProxy)
12173+                         G_IMPLEMENT_INTERFACE (GXDP_TYPE_OPEN_URI, gxdp_open_uri_proxy_iface_init))
12174+
12175+#else
12176+G_DEFINE_TYPE_WITH_CODE (GXdpOpenURIProxy, gxdp_open_uri_proxy, G_TYPE_DBUS_PROXY,
12177+                         G_IMPLEMENT_INTERFACE (GXDP_TYPE_OPEN_URI, gxdp_open_uri_proxy_iface_init))
12178+
12179+#endif
12180+static void
12181+gxdp_open_uri_proxy_finalize (GObject *object)
12182+{
12183+  GXdpOpenURIProxy *proxy = GXDP_OPEN_URI_PROXY (object);
12184+  g_datalist_clear (&proxy->priv->qdata);
12185+  G_OBJECT_CLASS (gxdp_open_uri_proxy_parent_class)->finalize (object);
12186+}
12187+
12188+static void
12189+gxdp_open_uri_proxy_get_property (GObject      *object,
12190+  guint         prop_id,
12191+  GValue       *value,
12192+  GParamSpec   *pspec G_GNUC_UNUSED)
12193+{
12194+  const _ExtendedGDBusPropertyInfo *info;
12195+  GVariant *variant;
12196+  g_assert (prop_id != 0 && prop_id - 1 < 1);
12197+  info = (const _ExtendedGDBusPropertyInfo *) _gxdp_open_uri_property_info_pointers[prop_id - 1];
12198+  variant = g_dbus_proxy_get_cached_property (G_DBUS_PROXY (object), info->parent_struct.name);
12199+  if (info->use_gvariant)
12200+    {
12201+      g_value_set_variant (value, variant);
12202+    }
12203+  else
12204+    {
12205+      if (variant != NULL)
12206+        g_dbus_gvariant_to_gvalue (variant, value);
12207+    }
12208+  if (variant != NULL)
12209+    g_variant_unref (variant);
12210+}
12211+
12212+static void
12213+gxdp_open_uri_proxy_set_property_cb (GDBusProxy *proxy,
12214+  GAsyncResult *res,
12215+  gpointer      user_data)
12216+{
12217+  const _ExtendedGDBusPropertyInfo *info = user_data;
12218+  GError *error;
12219+  GVariant *_ret;
12220+  error = NULL;
12221+  _ret = g_dbus_proxy_call_finish (proxy, res, &error);
12222+  if (!_ret)
12223+    {
12224+      g_warning ("Error setting property '%s' on interface org.freedesktop.portal.OpenURI: %s (%s, %d)",
12225+                 info->parent_struct.name,
12226+                 error->message, g_quark_to_string (error->domain), error->code);
12227+      g_error_free (error);
12228+    }
12229+  else
12230+    {
12231+      g_variant_unref (_ret);
12232+    }
12233+}
12234+
12235+static void
12236+gxdp_open_uri_proxy_set_property (GObject      *object,
12237+  guint         prop_id,
12238+  const GValue *value,
12239+  GParamSpec   *pspec G_GNUC_UNUSED)
12240+{
12241+  const _ExtendedGDBusPropertyInfo *info;
12242+  GVariant *variant;
12243+  g_assert (prop_id != 0 && prop_id - 1 < 1);
12244+  info = (const _ExtendedGDBusPropertyInfo *) _gxdp_open_uri_property_info_pointers[prop_id - 1];
12245+  variant = g_dbus_gvalue_to_gvariant (value, G_VARIANT_TYPE (info->parent_struct.signature));
12246+  g_dbus_proxy_call (G_DBUS_PROXY (object),
12247+    "org.freedesktop.DBus.Properties.Set",
12248+    g_variant_new ("(ssv)", "org.freedesktop.portal.OpenURI", info->parent_struct.name, variant),
12249+    G_DBUS_CALL_FLAGS_NONE,
12250+    -1,
12251+    NULL, (GAsyncReadyCallback) gxdp_open_uri_proxy_set_property_cb, (GDBusPropertyInfo *) &info->parent_struct);
12252+  g_variant_unref (variant);
12253+}
12254+
12255+static void
12256+gxdp_open_uri_proxy_g_signal (GDBusProxy *proxy,
12257+  const gchar *sender_name G_GNUC_UNUSED,
12258+  const gchar *signal_name,
12259+  GVariant *parameters)
12260+{
12261+  _ExtendedGDBusSignalInfo *info;
12262+  GVariantIter iter;
12263+  GVariant *child;
12264+  GValue *paramv;
12265+  gsize num_params;
12266+  gsize n;
12267+  guint signal_id;
12268+  info = (_ExtendedGDBusSignalInfo *) g_dbus_interface_info_lookup_signal ((GDBusInterfaceInfo *) &_gxdp_open_uri_interface_info.parent_struct, signal_name);
12269+  if (info == NULL)
12270+    return;
12271+  num_params = g_variant_n_children (parameters);
12272+  paramv = g_new0 (GValue, num_params + 1);
12273+  g_value_init (&paramv[0], GXDP_TYPE_OPEN_URI);
12274+  g_value_set_object (&paramv[0], proxy);
12275+  g_variant_iter_init (&iter, parameters);
12276+  n = 1;
12277+  while ((child = g_variant_iter_next_value (&iter)) != NULL)
12278+    {
12279+      _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.args[n - 1];
12280+      if (arg_info->use_gvariant)
12281+        {
12282+          g_value_init (&paramv[n], G_TYPE_VARIANT);
12283+          g_value_set_variant (&paramv[n], child);
12284+          n++;
12285+        }
12286+      else
12287+        g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
12288+      g_variant_unref (child);
12289+    }
12290+  signal_id = g_signal_lookup (info->signal_name, GXDP_TYPE_OPEN_URI);
12291+  g_signal_emitv (paramv, signal_id, 0, NULL);
12292+  for (n = 0; n < num_params + 1; n++)
12293+    g_value_unset (&paramv[n]);
12294+  g_free (paramv);
12295+}
12296+
12297+static void
12298+gxdp_open_uri_proxy_g_properties_changed (GDBusProxy *_proxy,
12299+  GVariant *changed_properties,
12300+  const gchar *const *invalidated_properties)
12301+{
12302+  GXdpOpenURIProxy *proxy = GXDP_OPEN_URI_PROXY (_proxy);
12303+  guint n;
12304+  const gchar *key;
12305+  GVariantIter *iter;
12306+  _ExtendedGDBusPropertyInfo *info;
12307+  g_variant_get (changed_properties, "a{sv}", &iter);
12308+  while (g_variant_iter_next (iter, "{&sv}", &key, NULL))
12309+    {
12310+      info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_gxdp_open_uri_interface_info.parent_struct, key);
12311+      g_datalist_remove_data (&proxy->priv->qdata, key);
12312+      if (info != NULL)
12313+        g_object_notify (G_OBJECT (proxy), info->hyphen_name);
12314+    }
12315+  g_variant_iter_free (iter);
12316+  for (n = 0; invalidated_properties[n] != NULL; n++)
12317+    {
12318+      info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_gxdp_open_uri_interface_info.parent_struct, invalidated_properties[n]);
12319+      g_datalist_remove_data (&proxy->priv->qdata, invalidated_properties[n]);
12320+      if (info != NULL)
12321+        g_object_notify (G_OBJECT (proxy), info->hyphen_name);
12322+    }
12323+}
12324+
12325+static guint
12326+gxdp_open_uri_proxy_get_version (GXdpOpenURI *object)
12327+{
12328+  GXdpOpenURIProxy *proxy = GXDP_OPEN_URI_PROXY (object);
12329+  GVariant *variant;
12330+  guint value = 0;
12331+  variant = g_dbus_proxy_get_cached_property (G_DBUS_PROXY (proxy), "version");
12332+  if (variant != NULL)
12333+    {
12334+      value = g_variant_get_uint32 (variant);
12335+      g_variant_unref (variant);
12336+    }
12337+  return value;
12338+}
12339+
12340+static void
12341+gxdp_open_uri_proxy_init (GXdpOpenURIProxy *proxy)
12342+{
12343+#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
12344+  proxy->priv = gxdp_open_uri_proxy_get_instance_private (proxy);
12345+#else
12346+  proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, GXDP_TYPE_OPEN_URI_PROXY, GXdpOpenURIProxyPrivate);
12347+#endif
12348+
12349+  g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), gxdp_open_uri_interface_info ());
12350+}
12351+
12352+static void
12353+gxdp_open_uri_proxy_class_init (GXdpOpenURIProxyClass *klass)
12354+{
12355+  GObjectClass *gobject_class;
12356+  GDBusProxyClass *proxy_class;
12357+
12358+  gobject_class = G_OBJECT_CLASS (klass);
12359+  gobject_class->finalize     = gxdp_open_uri_proxy_finalize;
12360+  gobject_class->get_property = gxdp_open_uri_proxy_get_property;
12361+  gobject_class->set_property = gxdp_open_uri_proxy_set_property;
12362+
12363+  proxy_class = G_DBUS_PROXY_CLASS (klass);
12364+  proxy_class->g_signal = gxdp_open_uri_proxy_g_signal;
12365+  proxy_class->g_properties_changed = gxdp_open_uri_proxy_g_properties_changed;
12366+
12367+  gxdp_open_uri_override_properties (gobject_class, 1);
12368+
12369+#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
12370+  g_type_class_add_private (klass, sizeof (GXdpOpenURIProxyPrivate));
12371+#endif
12372+}
12373+
12374+static void
12375+gxdp_open_uri_proxy_iface_init (GXdpOpenURIIface *iface)
12376+{
12377+  iface->get_version = gxdp_open_uri_proxy_get_version;
12378+}
12379+
12380+/**
12381+ * gxdp_open_uri_proxy_new:
12382+ * @connection: A #GDBusConnection.
12383+ * @flags: Flags from the #GDBusProxyFlags enumeration.
12384+ * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
12385+ * @object_path: An object path.
12386+ * @cancellable: (nullable): A #GCancellable or %NULL.
12387+ * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
12388+ * @user_data: User data to pass to @callback.
12389+ *
12390+ * Asynchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-freedesktop-portal-OpenURI.top_of_page">org.freedesktop.portal.OpenURI</link>. See g_dbus_proxy_new() for more details.
12391+ *
12392+ * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from (see g_main_context_push_thread_default()).
12393+ * You can then call gxdp_open_uri_proxy_new_finish() to get the result of the operation.
12394+ *
12395+ * See gxdp_open_uri_proxy_new_sync() for the synchronous, blocking version of this constructor.
12396+ */
12397+void
12398+gxdp_open_uri_proxy_new (
12399+    GDBusConnection     *connection,
12400+    GDBusProxyFlags      flags,
12401+    const gchar         *name,
12402+    const gchar         *object_path,
12403+    GCancellable        *cancellable,
12404+    GAsyncReadyCallback  callback,
12405+    gpointer             user_data)
12406+{
12407+  g_async_initable_new_async (GXDP_TYPE_OPEN_URI_PROXY, G_PRIORITY_DEFAULT, cancellable, callback, user_data, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.freedesktop.portal.OpenURI", NULL);
12408+}
12409+
12410+/**
12411+ * gxdp_open_uri_proxy_new_finish:
12412+ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to gxdp_open_uri_proxy_new().
12413+ * @error: Return location for error or %NULL
12414+ *
12415+ * Finishes an operation started with gxdp_open_uri_proxy_new().
12416+ *
12417+ * Returns: (transfer full) (type GXdpOpenURIProxy): The constructed proxy object or %NULL if @error is set.
12418+ */
12419+GXdpOpenURI *
12420+gxdp_open_uri_proxy_new_finish (
12421+    GAsyncResult        *res,
12422+    GError             **error)
12423+{
12424+  GObject *ret;
12425+  GObject *source_object;
12426+  source_object = g_async_result_get_source_object (res);
12427+  ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
12428+  g_object_unref (source_object);
12429+  if (ret != NULL)
12430+    return GXDP_OPEN_URI (ret);
12431+  else
12432+    return NULL;
12433+}
12434+
12435+/**
12436+ * gxdp_open_uri_proxy_new_sync:
12437+ * @connection: A #GDBusConnection.
12438+ * @flags: Flags from the #GDBusProxyFlags enumeration.
12439+ * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
12440+ * @object_path: An object path.
12441+ * @cancellable: (nullable): A #GCancellable or %NULL.
12442+ * @error: Return location for error or %NULL
12443+ *
12444+ * Synchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-freedesktop-portal-OpenURI.top_of_page">org.freedesktop.portal.OpenURI</link>. See g_dbus_proxy_new_sync() for more details.
12445+ *
12446+ * The calling thread is blocked until a reply is received.
12447+ *
12448+ * See gxdp_open_uri_proxy_new() for the asynchronous version of this constructor.
12449+ *
12450+ * Returns: (transfer full) (type GXdpOpenURIProxy): The constructed proxy object or %NULL if @error is set.
12451+ */
12452+GXdpOpenURI *
12453+gxdp_open_uri_proxy_new_sync (
12454+    GDBusConnection     *connection,
12455+    GDBusProxyFlags      flags,
12456+    const gchar         *name,
12457+    const gchar         *object_path,
12458+    GCancellable        *cancellable,
12459+    GError             **error)
12460+{
12461+  GInitable *ret;
12462+  ret = g_initable_new (GXDP_TYPE_OPEN_URI_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.freedesktop.portal.OpenURI", NULL);
12463+  if (ret != NULL)
12464+    return GXDP_OPEN_URI (ret);
12465+  else
12466+    return NULL;
12467+}
12468+
12469+
12470+/**
12471+ * gxdp_open_uri_proxy_new_for_bus:
12472+ * @bus_type: A #GBusType.
12473+ * @flags: Flags from the #GDBusProxyFlags enumeration.
12474+ * @name: A bus name (well-known or unique).
12475+ * @object_path: An object path.
12476+ * @cancellable: (nullable): A #GCancellable or %NULL.
12477+ * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
12478+ * @user_data: User data to pass to @callback.
12479+ *
12480+ * Like gxdp_open_uri_proxy_new() but takes a #GBusType instead of a #GDBusConnection.
12481+ *
12482+ * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from (see g_main_context_push_thread_default()).
12483+ * You can then call gxdp_open_uri_proxy_new_for_bus_finish() to get the result of the operation.
12484+ *
12485+ * See gxdp_open_uri_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.
12486+ */
12487+void
12488+gxdp_open_uri_proxy_new_for_bus (
12489+    GBusType             bus_type,
12490+    GDBusProxyFlags      flags,
12491+    const gchar         *name,
12492+    const gchar         *object_path,
12493+    GCancellable        *cancellable,
12494+    GAsyncReadyCallback  callback,
12495+    gpointer             user_data)
12496+{
12497+  g_async_initable_new_async (GXDP_TYPE_OPEN_URI_PROXY, G_PRIORITY_DEFAULT, cancellable, callback, user_data, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.freedesktop.portal.OpenURI", NULL);
12498+}
12499+
12500+/**
12501+ * gxdp_open_uri_proxy_new_for_bus_finish:
12502+ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to gxdp_open_uri_proxy_new_for_bus().
12503+ * @error: Return location for error or %NULL
12504+ *
12505+ * Finishes an operation started with gxdp_open_uri_proxy_new_for_bus().
12506+ *
12507+ * Returns: (transfer full) (type GXdpOpenURIProxy): The constructed proxy object or %NULL if @error is set.
12508+ */
12509+GXdpOpenURI *
12510+gxdp_open_uri_proxy_new_for_bus_finish (
12511+    GAsyncResult        *res,
12512+    GError             **error)
12513+{
12514+  GObject *ret;
12515+  GObject *source_object;
12516+  source_object = g_async_result_get_source_object (res);
12517+  ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
12518+  g_object_unref (source_object);
12519+  if (ret != NULL)
12520+    return GXDP_OPEN_URI (ret);
12521+  else
12522+    return NULL;
12523+}
12524+
12525+/**
12526+ * gxdp_open_uri_proxy_new_for_bus_sync:
12527+ * @bus_type: A #GBusType.
12528+ * @flags: Flags from the #GDBusProxyFlags enumeration.
12529+ * @name: A bus name (well-known or unique).
12530+ * @object_path: An object path.
12531+ * @cancellable: (nullable): A #GCancellable or %NULL.
12532+ * @error: Return location for error or %NULL
12533+ *
12534+ * Like gxdp_open_uri_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.
12535+ *
12536+ * The calling thread is blocked until a reply is received.
12537+ *
12538+ * See gxdp_open_uri_proxy_new_for_bus() for the asynchronous version of this constructor.
12539+ *
12540+ * Returns: (transfer full) (type GXdpOpenURIProxy): The constructed proxy object or %NULL if @error is set.
12541+ */
12542+GXdpOpenURI *
12543+gxdp_open_uri_proxy_new_for_bus_sync (
12544+    GBusType             bus_type,
12545+    GDBusProxyFlags      flags,
12546+    const gchar         *name,
12547+    const gchar         *object_path,
12548+    GCancellable        *cancellable,
12549+    GError             **error)
12550+{
12551+  GInitable *ret;
12552+  ret = g_initable_new (GXDP_TYPE_OPEN_URI_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.freedesktop.portal.OpenURI", NULL);
12553+  if (ret != NULL)
12554+    return GXDP_OPEN_URI (ret);
12555+  else
12556+    return NULL;
12557+}
12558+
12559+
12560+/* ------------------------------------------------------------------------ */
12561+
12562+/**
12563+ * GXdpOpenURISkeleton:
12564+ *
12565+ * The #GXdpOpenURISkeleton structure contains only private data and should only be accessed using the provided API.
12566+ */
12567+
12568+/**
12569+ * GXdpOpenURISkeletonClass:
12570+ * @parent_class: The parent class.
12571+ *
12572+ * Class structure for #GXdpOpenURISkeleton.
12573+ */
12574+
12575+struct _GXdpOpenURISkeletonPrivate
12576+{
12577+  GValue *properties;
12578+  GList *changed_properties;
12579+  GSource *changed_properties_idle_source;
12580+  GMainContext *context;
12581+  GMutex lock;
12582+};
12583+
12584+static void
12585+_gxdp_open_uri_skeleton_handle_method_call (
12586+  GDBusConnection *connection G_GNUC_UNUSED,
12587+  const gchar *sender G_GNUC_UNUSED,
12588+  const gchar *object_path G_GNUC_UNUSED,
12589+  const gchar *interface_name,
12590+  const gchar *method_name,
12591+  GVariant *parameters,
12592+  GDBusMethodInvocation *invocation,
12593+  gpointer user_data)
12594+{
12595+  GXdpOpenURISkeleton *skeleton = GXDP_OPEN_URI_SKELETON (user_data);
12596+  _ExtendedGDBusMethodInfo *info;
12597+  GVariantIter iter;
12598+  GVariant *child;
12599+  GValue *paramv;
12600+  gsize num_params;
12601+  guint num_extra;
12602+  gsize n;
12603+  guint signal_id;
12604+  GValue return_value = G_VALUE_INIT;
12605+  info = (_ExtendedGDBusMethodInfo *) g_dbus_method_invocation_get_method_info (invocation);
12606+  g_assert (info != NULL);
12607+  num_params = g_variant_n_children (parameters);
12608+  num_extra = info->pass_fdlist ? 3 : 2;  paramv = g_new0 (GValue, num_params + num_extra);
12609+  n = 0;
12610+  g_value_init (&paramv[n], GXDP_TYPE_OPEN_URI);
12611+  g_value_set_object (&paramv[n++], skeleton);
12612+  g_value_init (&paramv[n], G_TYPE_DBUS_METHOD_INVOCATION);
12613+  g_value_set_object (&paramv[n++], invocation);
12614+  if (info->pass_fdlist)
12615+    {
12616+#ifdef G_OS_UNIX
12617+      g_value_init (&paramv[n], G_TYPE_UNIX_FD_LIST);
12618+      g_value_set_object (&paramv[n++], g_dbus_message_get_unix_fd_list (g_dbus_method_invocation_get_message (invocation)));
12619+#else
12620+      g_assert_not_reached ();
12621+#endif
12622+    }
12623+  g_variant_iter_init (&iter, parameters);
12624+  while ((child = g_variant_iter_next_value (&iter)) != NULL)
12625+    {
12626+      _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.in_args[n - num_extra];
12627+      if (arg_info->use_gvariant)
12628+        {
12629+          g_value_init (&paramv[n], G_TYPE_VARIANT);
12630+          g_value_set_variant (&paramv[n], child);
12631+          n++;
12632+        }
12633+      else
12634+        g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
12635+      g_variant_unref (child);
12636+    }
12637+  signal_id = g_signal_lookup (info->signal_name, GXDP_TYPE_OPEN_URI);
12638+  g_value_init (&return_value, G_TYPE_BOOLEAN);
12639+  g_signal_emitv (paramv, signal_id, 0, &return_value);
12640+  if (!g_value_get_boolean (&return_value))
12641+    g_dbus_method_invocation_return_error (invocation, G_DBUS_ERROR, G_DBUS_ERROR_UNKNOWN_METHOD, "Method %s is not implemented on interface %s", method_name, interface_name);
12642+  g_value_unset (&return_value);
12643+  for (n = 0; n < num_params + num_extra; n++)
12644+    g_value_unset (&paramv[n]);
12645+  g_free (paramv);
12646+}
12647+
12648+static GVariant *
12649+_gxdp_open_uri_skeleton_handle_get_property (
12650+  GDBusConnection *connection G_GNUC_UNUSED,
12651+  const gchar *sender G_GNUC_UNUSED,
12652+  const gchar *object_path G_GNUC_UNUSED,
12653+  const gchar *interface_name G_GNUC_UNUSED,
12654+  const gchar *property_name,
12655+  GError **error,
12656+  gpointer user_data)
12657+{
12658+  GXdpOpenURISkeleton *skeleton = GXDP_OPEN_URI_SKELETON (user_data);
12659+  GValue value = G_VALUE_INIT;
12660+  GParamSpec *pspec;
12661+  _ExtendedGDBusPropertyInfo *info;
12662+  GVariant *ret;
12663+  ret = NULL;
12664+  info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_gxdp_open_uri_interface_info.parent_struct, property_name);
12665+  g_assert (info != NULL);
12666+  pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
12667+  if (pspec == NULL)
12668+    {
12669+      g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
12670+    }
12671+  else
12672+    {
12673+      g_value_init (&value, pspec->value_type);
12674+      g_object_get_property (G_OBJECT (skeleton), info->hyphen_name, &value);
12675+      ret = g_dbus_gvalue_to_gvariant (&value, G_VARIANT_TYPE (info->parent_struct.signature));
12676+      g_value_unset (&value);
12677+    }
12678+  return ret;
12679+}
12680+
12681+static gboolean
12682+_gxdp_open_uri_skeleton_handle_set_property (
12683+  GDBusConnection *connection G_GNUC_UNUSED,
12684+  const gchar *sender G_GNUC_UNUSED,
12685+  const gchar *object_path G_GNUC_UNUSED,
12686+  const gchar *interface_name G_GNUC_UNUSED,
12687+  const gchar *property_name,
12688+  GVariant *variant,
12689+  GError **error,
12690+  gpointer user_data)
12691+{
12692+  GXdpOpenURISkeleton *skeleton = GXDP_OPEN_URI_SKELETON (user_data);
12693+  GValue value = G_VALUE_INIT;
12694+  GParamSpec *pspec;
12695+  _ExtendedGDBusPropertyInfo *info;
12696+  gboolean ret;
12697+  ret = FALSE;
12698+  info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_gxdp_open_uri_interface_info.parent_struct, property_name);
12699+  g_assert (info != NULL);
12700+  pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
12701+  if (pspec == NULL)
12702+    {
12703+      g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
12704+    }
12705+  else
12706+    {
12707+      if (info->use_gvariant)
12708+        g_value_set_variant (&value, variant);
12709+      else
12710+        g_dbus_gvariant_to_gvalue (variant, &value);
12711+      g_object_set_property (G_OBJECT (skeleton), info->hyphen_name, &value);
12712+      g_value_unset (&value);
12713+      ret = TRUE;
12714+    }
12715+  return ret;
12716+}
12717+
12718+static const GDBusInterfaceVTable _gxdp_open_uri_skeleton_vtable =
12719+{
12720+  _gxdp_open_uri_skeleton_handle_method_call,
12721+  _gxdp_open_uri_skeleton_handle_get_property,
12722+  _gxdp_open_uri_skeleton_handle_set_property,
12723+  {NULL}
12724+};
12725+
12726+static GDBusInterfaceInfo *
12727+gxdp_open_uri_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
12728+{
12729+  return gxdp_open_uri_interface_info ();
12730+}
12731+
12732+static GDBusInterfaceVTable *
12733+gxdp_open_uri_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
12734+{
12735+  return (GDBusInterfaceVTable *) &_gxdp_open_uri_skeleton_vtable;
12736+}
12737+
12738+static GVariant *
12739+gxdp_open_uri_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton)
12740+{
12741+  GXdpOpenURISkeleton *skeleton = GXDP_OPEN_URI_SKELETON (_skeleton);
12742+
12743+  GVariantBuilder builder;
12744+  guint n;
12745+  g_variant_builder_init (&builder, G_VARIANT_TYPE ("a{sv}"));
12746+  if (_gxdp_open_uri_interface_info.parent_struct.properties == NULL)
12747+    goto out;
12748+  for (n = 0; _gxdp_open_uri_interface_info.parent_struct.properties[n] != NULL; n++)
12749+    {
12750+      GDBusPropertyInfo *info = _gxdp_open_uri_interface_info.parent_struct.properties[n];
12751+      if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE)
12752+        {
12753+          GVariant *value;
12754+          value = _gxdp_open_uri_skeleton_handle_get_property (g_dbus_interface_skeleton_get_connection (G_DBUS_INTERFACE_SKELETON (skeleton)), NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "org.freedesktop.portal.OpenURI", info->name, NULL, skeleton);
12755+          if (value != NULL)
12756+            {
12757+              g_variant_take_ref (value);
12758+              g_variant_builder_add (&builder, "{sv}", info->name, value);
12759+              g_variant_unref (value);
12760+            }
12761+        }
12762+    }
12763+out:
12764+  return g_variant_builder_end (&builder);
12765+}
12766+
12767+static gboolean _gxdp_open_uri_emit_changed (gpointer user_data);
12768+
12769+static void
12770+gxdp_open_uri_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton)
12771+{
12772+  GXdpOpenURISkeleton *skeleton = GXDP_OPEN_URI_SKELETON (_skeleton);
12773+  gboolean emit_changed = FALSE;
12774+
12775+  g_mutex_lock (&skeleton->priv->lock);
12776+  if (skeleton->priv->changed_properties_idle_source != NULL)
12777+    {
12778+      g_source_destroy (skeleton->priv->changed_properties_idle_source);
12779+      skeleton->priv->changed_properties_idle_source = NULL;
12780+      emit_changed = TRUE;
12781+    }
12782+  g_mutex_unlock (&skeleton->priv->lock);
12783+
12784+  if (emit_changed)
12785+    _gxdp_open_uri_emit_changed (skeleton);
12786+}
12787+
12788+static void gxdp_open_uri_skeleton_iface_init (GXdpOpenURIIface *iface);
12789+#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
12790+G_DEFINE_TYPE_WITH_CODE (GXdpOpenURISkeleton, gxdp_open_uri_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
12791+                         G_ADD_PRIVATE (GXdpOpenURISkeleton)
12792+                         G_IMPLEMENT_INTERFACE (GXDP_TYPE_OPEN_URI, gxdp_open_uri_skeleton_iface_init))
12793+
12794+#else
12795+G_DEFINE_TYPE_WITH_CODE (GXdpOpenURISkeleton, gxdp_open_uri_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
12796+                         G_IMPLEMENT_INTERFACE (GXDP_TYPE_OPEN_URI, gxdp_open_uri_skeleton_iface_init))
12797+
12798+#endif
12799+static void
12800+gxdp_open_uri_skeleton_finalize (GObject *object)
12801+{
12802+  GXdpOpenURISkeleton *skeleton = GXDP_OPEN_URI_SKELETON (object);
12803+  guint n;
12804+  for (n = 0; n < 1; n++)
12805+    g_value_unset (&skeleton->priv->properties[n]);
12806+  g_free (skeleton->priv->properties);
12807+  g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free);
12808+  if (skeleton->priv->changed_properties_idle_source != NULL)
12809+    g_source_destroy (skeleton->priv->changed_properties_idle_source);
12810+  g_main_context_unref (skeleton->priv->context);
12811+  g_mutex_clear (&skeleton->priv->lock);
12812+  G_OBJECT_CLASS (gxdp_open_uri_skeleton_parent_class)->finalize (object);
12813+}
12814+
12815+static void
12816+gxdp_open_uri_skeleton_get_property (GObject      *object,
12817+  guint         prop_id,
12818+  GValue       *value,
12819+  GParamSpec   *pspec G_GNUC_UNUSED)
12820+{
12821+  GXdpOpenURISkeleton *skeleton = GXDP_OPEN_URI_SKELETON (object);
12822+  g_assert (prop_id != 0 && prop_id - 1 < 1);
12823+  g_mutex_lock (&skeleton->priv->lock);
12824+  g_value_copy (&skeleton->priv->properties[prop_id - 1], value);
12825+  g_mutex_unlock (&skeleton->priv->lock);
12826+}
12827+
12828+static gboolean
12829+_gxdp_open_uri_emit_changed (gpointer user_data)
12830+{
12831+  GXdpOpenURISkeleton *skeleton = GXDP_OPEN_URI_SKELETON (user_data);
12832+  GList *l;
12833+  GVariantBuilder builder;
12834+  GVariantBuilder invalidated_builder;
12835+  guint num_changes;
12836+
12837+  g_mutex_lock (&skeleton->priv->lock);
12838+  g_variant_builder_init (&builder, G_VARIANT_TYPE ("a{sv}"));
12839+  g_variant_builder_init (&invalidated_builder, G_VARIANT_TYPE ("as"));
12840+  for (l = skeleton->priv->changed_properties, num_changes = 0; l != NULL; l = l->next)
12841+    {
12842+      ChangedProperty *cp = l->data;
12843+      GVariant *variant;
12844+      const GValue *cur_value;
12845+
12846+      cur_value = &skeleton->priv->properties[cp->prop_id - 1];
12847+      if (!_g_value_equal (cur_value, &cp->orig_value))
12848+        {
12849+          variant = g_dbus_gvalue_to_gvariant (cur_value, G_VARIANT_TYPE (cp->info->parent_struct.signature));
12850+          g_variant_builder_add (&builder, "{sv}", cp->info->parent_struct.name, variant);
12851+          g_variant_unref (variant);
12852+          num_changes++;
12853+        }
12854+    }
12855+  if (num_changes > 0)
12856+    {
12857+      GList *connections, *ll;
12858+      GVariant *signal_variant;
12859+      signal_variant = g_variant_ref_sink (g_variant_new ("(sa{sv}as)", "org.freedesktop.portal.OpenURI",
12860+                                           &builder, &invalidated_builder));
12861+      connections = g_dbus_interface_skeleton_get_connections (G_DBUS_INTERFACE_SKELETON (skeleton));
12862+      for (ll = connections; ll != NULL; ll = ll->next)
12863+        {
12864+          GDBusConnection *connection = ll->data;
12865+
12866+          g_dbus_connection_emit_signal (connection,
12867+                                         NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)),
12868+                                         "org.freedesktop.DBus.Properties",
12869+                                         "PropertiesChanged",
12870+                                         signal_variant,
12871+                                         NULL);
12872+        }
12873+      g_variant_unref (signal_variant);
12874+      g_list_free_full (connections, g_object_unref);
12875+    }
12876+  else
12877+    {
12878+      g_variant_builder_clear (&builder);
12879+      g_variant_builder_clear (&invalidated_builder);
12880+    }
12881+  g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free);
12882+  skeleton->priv->changed_properties = NULL;
12883+  skeleton->priv->changed_properties_idle_source = NULL;
12884+  g_mutex_unlock (&skeleton->priv->lock);
12885+  return FALSE;
12886+}
12887+
12888+static void
12889+_gxdp_open_uri_schedule_emit_changed (GXdpOpenURISkeleton *skeleton, const _ExtendedGDBusPropertyInfo *info, guint prop_id, const GValue *orig_value)
12890+{
12891+  ChangedProperty *cp;
12892+  GList *l;
12893+  cp = NULL;
12894+  for (l = skeleton->priv->changed_properties; l != NULL; l = l->next)
12895+    {
12896+      ChangedProperty *i_cp = l->data;
12897+      if (i_cp->info == info)
12898+        {
12899+          cp = i_cp;
12900+          break;
12901+        }
12902+    }
12903+  if (cp == NULL)
12904+    {
12905+      cp = g_new0 (ChangedProperty, 1);
12906+      cp->prop_id = prop_id;
12907+      cp->info = info;
12908+      skeleton->priv->changed_properties = g_list_prepend (skeleton->priv->changed_properties, cp);
12909+      g_value_init (&cp->orig_value, G_VALUE_TYPE (orig_value));
12910+      g_value_copy (orig_value, &cp->orig_value);
12911+    }
12912+}
12913+
12914+static void
12915+gxdp_open_uri_skeleton_notify (GObject      *object,
12916+  GParamSpec *pspec G_GNUC_UNUSED)
12917+{
12918+  GXdpOpenURISkeleton *skeleton = GXDP_OPEN_URI_SKELETON (object);
12919+  g_mutex_lock (&skeleton->priv->lock);
12920+  if (skeleton->priv->changed_properties != NULL &&
12921+      skeleton->priv->changed_properties_idle_source == NULL)
12922+    {
12923+      skeleton->priv->changed_properties_idle_source = g_idle_source_new ();
12924+      g_source_set_priority (skeleton->priv->changed_properties_idle_source, G_PRIORITY_DEFAULT);
12925+      g_source_set_callback (skeleton->priv->changed_properties_idle_source, _gxdp_open_uri_emit_changed, g_object_ref (skeleton), (GDestroyNotify) g_object_unref);
12926+      g_source_set_name (skeleton->priv->changed_properties_idle_source, "[generated] _gxdp_open_uri_emit_changed");
12927+      g_source_attach (skeleton->priv->changed_properties_idle_source, skeleton->priv->context);
12928+      g_source_unref (skeleton->priv->changed_properties_idle_source);
12929+    }
12930+  g_mutex_unlock (&skeleton->priv->lock);
12931+}
12932+
12933+static void
12934+gxdp_open_uri_skeleton_set_property (GObject      *object,
12935+  guint         prop_id,
12936+  const GValue *value,
12937+  GParamSpec   *pspec)
12938+{
12939+  const _ExtendedGDBusPropertyInfo *info;
12940+  GXdpOpenURISkeleton *skeleton = GXDP_OPEN_URI_SKELETON (object);
12941+  g_assert (prop_id != 0 && prop_id - 1 < 1);
12942+  info = (const _ExtendedGDBusPropertyInfo *) _gxdp_open_uri_property_info_pointers[prop_id - 1];
12943+  g_mutex_lock (&skeleton->priv->lock);
12944+  g_object_freeze_notify (object);
12945+  if (!_g_value_equal (value, &skeleton->priv->properties[prop_id - 1]))
12946+    {
12947+      if (g_dbus_interface_skeleton_get_connection (G_DBUS_INTERFACE_SKELETON (skeleton)) != NULL &&
12948+          info->emits_changed_signal)
12949+        _gxdp_open_uri_schedule_emit_changed (skeleton, info, prop_id, &skeleton->priv->properties[prop_id - 1]);
12950+      g_value_copy (value, &skeleton->priv->properties[prop_id - 1]);
12951+      g_object_notify_by_pspec (object, pspec);
12952+    }
12953+  g_mutex_unlock (&skeleton->priv->lock);
12954+  g_object_thaw_notify (object);
12955+}
12956+
12957+static void
12958+gxdp_open_uri_skeleton_init (GXdpOpenURISkeleton *skeleton)
12959+{
12960+#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
12961+  skeleton->priv = gxdp_open_uri_skeleton_get_instance_private (skeleton);
12962+#else
12963+  skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, GXDP_TYPE_OPEN_URI_SKELETON, GXdpOpenURISkeletonPrivate);
12964+#endif
12965+
12966+  g_mutex_init (&skeleton->priv->lock);
12967+  skeleton->priv->context = g_main_context_ref_thread_default ();
12968+  skeleton->priv->properties = g_new0 (GValue, 1);
12969+  g_value_init (&skeleton->priv->properties[0], G_TYPE_UINT);
12970+}
12971+
12972+static guint
12973+gxdp_open_uri_skeleton_get_version (GXdpOpenURI *object)
12974+{
12975+  GXdpOpenURISkeleton *skeleton = GXDP_OPEN_URI_SKELETON (object);
12976+  guint value;
12977+  g_mutex_lock (&skeleton->priv->lock);
12978+  value = g_value_get_uint (&(skeleton->priv->properties[0]));
12979+  g_mutex_unlock (&skeleton->priv->lock);
12980+  return value;
12981+}
12982+
12983+static void
12984+gxdp_open_uri_skeleton_class_init (GXdpOpenURISkeletonClass *klass)
12985+{
12986+  GObjectClass *gobject_class;
12987+  GDBusInterfaceSkeletonClass *skeleton_class;
12988+
12989+  gobject_class = G_OBJECT_CLASS (klass);
12990+  gobject_class->finalize = gxdp_open_uri_skeleton_finalize;
12991+  gobject_class->get_property = gxdp_open_uri_skeleton_get_property;
12992+  gobject_class->set_property = gxdp_open_uri_skeleton_set_property;
12993+  gobject_class->notify       = gxdp_open_uri_skeleton_notify;
12994+
12995+
12996+  gxdp_open_uri_override_properties (gobject_class, 1);
12997+
12998+  skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass);
12999+  skeleton_class->get_info = gxdp_open_uri_skeleton_dbus_interface_get_info;
13000+  skeleton_class->get_properties = gxdp_open_uri_skeleton_dbus_interface_get_properties;
13001+  skeleton_class->flush = gxdp_open_uri_skeleton_dbus_interface_flush;
13002+  skeleton_class->get_vtable = gxdp_open_uri_skeleton_dbus_interface_get_vtable;
13003+
13004+#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
13005+  g_type_class_add_private (klass, sizeof (GXdpOpenURISkeletonPrivate));
13006+#endif
13007+}
13008+
13009+static void
13010+gxdp_open_uri_skeleton_iface_init (GXdpOpenURIIface *iface)
13011+{
13012+  iface->get_version = gxdp_open_uri_skeleton_get_version;
13013+}
13014+
13015+/**
13016+ * gxdp_open_uri_skeleton_new:
13017+ *
13018+ * Creates a skeleton object for the D-Bus interface <link linkend="gdbus-interface-org-freedesktop-portal-OpenURI.top_of_page">org.freedesktop.portal.OpenURI</link>.
13019+ *
13020+ * Returns: (transfer full) (type GXdpOpenURISkeleton): The skeleton object.
13021+ */
13022+GXdpOpenURI *
13023+gxdp_open_uri_skeleton_new (void)
13024+{
13025+  return GXDP_OPEN_URI (g_object_new (GXDP_TYPE_OPEN_URI_SKELETON, NULL));
13026+}
13027+
13028+/* ------------------------------------------------------------------------
13029+ * Code for interface org.freedesktop.portal.ProxyResolver
13030+ * ------------------------------------------------------------------------
13031+ */
13032+
13033+/**
13034+ * SECTION:GXdpProxyResolver
13035+ * @title: GXdpProxyResolver
13036+ * @short_description: Generated C code for the org.freedesktop.portal.ProxyResolver D-Bus interface
13037+ *
13038+ * This section contains code for working with the <link linkend="gdbus-interface-org-freedesktop-portal-ProxyResolver.top_of_page">org.freedesktop.portal.ProxyResolver</link> D-Bus interface in C.
13039+ */
13040+
13041+/* ---- Introspection data for org.freedesktop.portal.ProxyResolver ---- */
13042+
13043+static const _ExtendedGDBusArgInfo _gxdp_proxy_resolver_method_info_lookup_IN_ARG_uri =
13044+{
13045+  {
13046+    -1,
13047+    (gchar *) "uri",
13048+    (gchar *) "s",
13049+    NULL
13050+  },
13051+  FALSE
13052+};
13053+
13054+static const GDBusArgInfo * const _gxdp_proxy_resolver_method_info_lookup_IN_ARG_pointers[] =
13055+{
13056+  &_gxdp_proxy_resolver_method_info_lookup_IN_ARG_uri.parent_struct,
13057+  NULL
13058+};
13059+
13060+static const _ExtendedGDBusArgInfo _gxdp_proxy_resolver_method_info_lookup_OUT_ARG_proxies =
13061+{
13062+  {
13063+    -1,
13064+    (gchar *) "proxies",
13065+    (gchar *) "as",
13066+    NULL
13067+  },
13068+  FALSE
13069+};
13070+
13071+static const GDBusArgInfo * const _gxdp_proxy_resolver_method_info_lookup_OUT_ARG_pointers[] =
13072+{
13073+  &_gxdp_proxy_resolver_method_info_lookup_OUT_ARG_proxies.parent_struct,
13074+  NULL
13075+};
13076+
13077+static const _ExtendedGDBusMethodInfo _gxdp_proxy_resolver_method_info_lookup =
13078+{
13079+  {
13080+    -1,
13081+    (gchar *) "Lookup",
13082+    (GDBusArgInfo **) &_gxdp_proxy_resolver_method_info_lookup_IN_ARG_pointers,
13083+    (GDBusArgInfo **) &_gxdp_proxy_resolver_method_info_lookup_OUT_ARG_pointers,
13084+    NULL
13085+  },
13086+  "handle-lookup",
13087+  FALSE
13088+};
13089+
13090+static const GDBusMethodInfo * const _gxdp_proxy_resolver_method_info_pointers[] =
13091+{
13092+  &_gxdp_proxy_resolver_method_info_lookup.parent_struct,
13093+  NULL
13094+};
13095+
13096+static const _ExtendedGDBusPropertyInfo _gxdp_proxy_resolver_property_info_version =
13097+{
13098+  {
13099+    -1,
13100+    (gchar *) "version",
13101+    (gchar *) "u",
13102+    G_DBUS_PROPERTY_INFO_FLAGS_READABLE,
13103+    NULL
13104+  },
13105+  "version",
13106+  FALSE,
13107+  TRUE
13108+};
13109+
13110+static const GDBusPropertyInfo * const _gxdp_proxy_resolver_property_info_pointers[] =
13111+{
13112+  &_gxdp_proxy_resolver_property_info_version.parent_struct,
13113+  NULL
13114+};
13115+
13116+static const _ExtendedGDBusInterfaceInfo _gxdp_proxy_resolver_interface_info =
13117+{
13118+  {
13119+    -1,
13120+    (gchar *) "org.freedesktop.portal.ProxyResolver",
13121+    (GDBusMethodInfo **) &_gxdp_proxy_resolver_method_info_pointers,
13122+    NULL,
13123+    (GDBusPropertyInfo **) &_gxdp_proxy_resolver_property_info_pointers,
13124+    NULL
13125+  },
13126+  "proxy-resolver",
13127+};
13128+
13129+
13130+/**
13131+ * gxdp_proxy_resolver_interface_info:
13132+ *
13133+ * Gets a machine-readable description of the <link linkend="gdbus-interface-org-freedesktop-portal-ProxyResolver.top_of_page">org.freedesktop.portal.ProxyResolver</link> D-Bus interface.
13134+ *
13135+ * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free.
13136+ */
13137+GDBusInterfaceInfo *
13138+gxdp_proxy_resolver_interface_info (void)
13139+{
13140+  return (GDBusInterfaceInfo *) &_gxdp_proxy_resolver_interface_info.parent_struct;
13141+}
13142+
13143+/**
13144+ * gxdp_proxy_resolver_override_properties:
13145+ * @klass: The class structure for a #GObject derived class.
13146+ * @property_id_begin: The property id to assign to the first overridden property.
13147+ *
13148+ * Overrides all #GObject properties in the #GXdpProxyResolver interface for a concrete class.
13149+ * The properties are overridden in the order they are defined.
13150+ *
13151+ * Returns: The last property id.
13152+ */
13153+guint
13154+gxdp_proxy_resolver_override_properties (GObjectClass *klass, guint property_id_begin)
13155+{
13156+  g_object_class_override_property (klass, property_id_begin++, "version");
13157+  return property_id_begin - 1;
13158+}
13159+
13160+
13161+
13162+/**
13163+ * GXdpProxyResolver:
13164+ *
13165+ * Abstract interface type for the D-Bus interface <link linkend="gdbus-interface-org-freedesktop-portal-ProxyResolver.top_of_page">org.freedesktop.portal.ProxyResolver</link>.
13166+ */
13167+
13168+/**
13169+ * GXdpProxyResolverIface:
13170+ * @parent_iface: The parent interface.
13171+ * @handle_lookup: Handler for the #GXdpProxyResolver::handle-lookup signal.
13172+ * @get_version: Getter for the #GXdpProxyResolver:version property.
13173+ *
13174+ * Virtual table for the D-Bus interface <link linkend="gdbus-interface-org-freedesktop-portal-ProxyResolver.top_of_page">org.freedesktop.portal.ProxyResolver</link>.
13175+ */
13176+
13177+typedef GXdpProxyResolverIface GXdpProxyResolverInterface;
13178+G_DEFINE_INTERFACE (GXdpProxyResolver, gxdp_proxy_resolver, G_TYPE_OBJECT)
13179+
13180+static void
13181+gxdp_proxy_resolver_default_init (GXdpProxyResolverIface *iface)
13182+{
13183+  /* GObject signals for incoming D-Bus method calls: */
13184+  /**
13185+   * GXdpProxyResolver::handle-lookup:
13186+   * @object: A #GXdpProxyResolver.
13187+   * @invocation: A #GDBusMethodInvocation.
13188+   * @arg_uri: Argument passed by remote caller.
13189+   *
13190+   * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-freedesktop-portal-ProxyResolver.Lookup">Lookup()</link> D-Bus method.
13191+   *
13192+   * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call gxdp_proxy_resolver_complete_lookup() or e.g. g_dbus_method_invocation_return_error() on it) and no other signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
13193+   *
13194+   * Returns: %G_DBUS_METHOD_INVOCATION_HANDLED or %TRUE if the invocation was handled, %G_DBUS_METHOD_INVOCATION_UNHANDLED or %FALSE to let other signal handlers run.
13195+   */
13196+  g_signal_new ("handle-lookup",
13197+    G_TYPE_FROM_INTERFACE (iface),
13198+    G_SIGNAL_RUN_LAST,
13199+    G_STRUCT_OFFSET (GXdpProxyResolverIface, handle_lookup),
13200+    g_signal_accumulator_true_handled,
13201+    NULL,
13202+    g_cclosure_marshal_generic,
13203+    G_TYPE_BOOLEAN,
13204+    2,
13205+    G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_STRING);
13206+
13207+  /* GObject properties for D-Bus properties: */
13208+  /**
13209+   * GXdpProxyResolver:version:
13210+   *
13211+   * Represents the D-Bus property <link linkend="gdbus-property-org-freedesktop-portal-ProxyResolver.version">"version"</link>.
13212+   *
13213+   * Since the D-Bus property for this #GObject property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.
13214+   */
13215+  g_object_interface_install_property (iface,
13216+    g_param_spec_uint ("version", "version", "version", 0, G_MAXUINT32, 0, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
13217+}
13218+
13219+/**
13220+ * gxdp_proxy_resolver_get_version: (skip)
13221+ * @object: A #GXdpProxyResolver.
13222+ *
13223+ * Gets the value of the <link linkend="gdbus-property-org-freedesktop-portal-ProxyResolver.version">"version"</link> D-Bus property.
13224+ *
13225+ * Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
13226+ *
13227+ * Returns: The property value.
13228+ */
13229+guint
13230+gxdp_proxy_resolver_get_version (GXdpProxyResolver *object)
13231+{
13232+  return GXDP_PROXY_RESOLVER_GET_IFACE (object)->get_version (object);
13233+}
13234+
13235+/**
13236+ * gxdp_proxy_resolver_set_version: (skip)
13237+ * @object: A #GXdpProxyResolver.
13238+ * @value: The value to set.
13239+ *
13240+ * Sets the <link linkend="gdbus-property-org-freedesktop-portal-ProxyResolver.version">"version"</link> D-Bus property to @value.
13241+ *
13242+ * Since this D-Bus property is not writable, it is only meaningful to use this function on the service-side.
13243+ */
13244+void
13245+gxdp_proxy_resolver_set_version (GXdpProxyResolver *object, guint value)
13246+{
13247+  g_object_set (G_OBJECT (object), "version", value, NULL);
13248+}
13249+
13250+/**
13251+ * gxdp_proxy_resolver_call_lookup:
13252+ * @proxy: A #GXdpProxyResolverProxy.
13253+ * @arg_uri: Argument to pass with the method invocation.
13254+ * @cancellable: (nullable): A #GCancellable or %NULL.
13255+ * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
13256+ * @user_data: User data to pass to @callback.
13257+ *
13258+ * Asynchronously invokes the <link linkend="gdbus-method-org-freedesktop-portal-ProxyResolver.Lookup">Lookup()</link> D-Bus method on @proxy.
13259+ * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from (see g_main_context_push_thread_default()).
13260+ * You can then call gxdp_proxy_resolver_call_lookup_finish() to get the result of the operation.
13261+ *
13262+ * See gxdp_proxy_resolver_call_lookup_sync() for the synchronous, blocking version of this method.
13263+ */
13264+void
13265+gxdp_proxy_resolver_call_lookup (
13266+    GXdpProxyResolver *proxy,
13267+    const gchar *arg_uri,
13268+    GCancellable *cancellable,
13269+    GAsyncReadyCallback callback,
13270+    gpointer user_data)
13271+{
13272+  g_dbus_proxy_call (G_DBUS_PROXY (proxy),
13273+    "Lookup",
13274+    g_variant_new ("(s)",
13275+                   arg_uri),
13276+    G_DBUS_CALL_FLAGS_NONE,
13277+    -1,
13278+    cancellable,
13279+    callback,
13280+    user_data);
13281+}
13282+
13283+/**
13284+ * gxdp_proxy_resolver_call_lookup_finish:
13285+ * @proxy: A #GXdpProxyResolverProxy.
13286+ * @out_proxies: (out) (optional) (array zero-terminated=1): Return location for return parameter or %NULL to ignore.
13287+ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to gxdp_proxy_resolver_call_lookup().
13288+ * @error: Return location for error or %NULL.
13289+ *
13290+ * Finishes an operation started with gxdp_proxy_resolver_call_lookup().
13291+ *
13292+ * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
13293+ */
13294+gboolean
13295+gxdp_proxy_resolver_call_lookup_finish (
13296+    GXdpProxyResolver *proxy,
13297+    gchar ***out_proxies,
13298+    GAsyncResult *res,
13299+    GError **error)
13300+{
13301+  GVariant *_ret;
13302+  _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
13303+  if (_ret == NULL)
13304+    goto _out;
13305+  g_variant_get (_ret,
13306+                 "(^as)",
13307+                 out_proxies);
13308+  g_variant_unref (_ret);
13309+_out:
13310+  return _ret != NULL;
13311+}
13312+
13313+/**
13314+ * gxdp_proxy_resolver_call_lookup_sync:
13315+ * @proxy: A #GXdpProxyResolverProxy.
13316+ * @arg_uri: Argument to pass with the method invocation.
13317+ * @out_proxies: (out) (optional) (array zero-terminated=1): Return location for return parameter or %NULL to ignore.
13318+ * @cancellable: (nullable): A #GCancellable or %NULL.
13319+ * @error: Return location for error or %NULL.
13320+ *
13321+ * Synchronously invokes the <link linkend="gdbus-method-org-freedesktop-portal-ProxyResolver.Lookup">Lookup()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
13322+ *
13323+ * See gxdp_proxy_resolver_call_lookup() for the asynchronous version of this method.
13324+ *
13325+ * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
13326+ */
13327+gboolean
13328+gxdp_proxy_resolver_call_lookup_sync (
13329+    GXdpProxyResolver *proxy,
13330+    const gchar *arg_uri,
13331+    gchar ***out_proxies,
13332+    GCancellable *cancellable,
13333+    GError **error)
13334+{
13335+  GVariant *_ret;
13336+  _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
13337+    "Lookup",
13338+    g_variant_new ("(s)",
13339+                   arg_uri),
13340+    G_DBUS_CALL_FLAGS_NONE,
13341+    -1,
13342+    cancellable,
13343+    error);
13344+  if (_ret == NULL)
13345+    goto _out;
13346+  g_variant_get (_ret,
13347+                 "(^as)",
13348+                 out_proxies);
13349+  g_variant_unref (_ret);
13350+_out:
13351+  return _ret != NULL;
13352+}
13353+
13354+/**
13355+ * gxdp_proxy_resolver_complete_lookup:
13356+ * @object: A #GXdpProxyResolver.
13357+ * @invocation: (transfer full): A #GDBusMethodInvocation.
13358+ * @proxies: Parameter to return.
13359+ *
13360+ * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-freedesktop-portal-ProxyResolver.Lookup">Lookup()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
13361+ *
13362+ * This method will free @invocation, you cannot use it afterwards.
13363+ */
13364+void
13365+gxdp_proxy_resolver_complete_lookup (
13366+    GXdpProxyResolver *object G_GNUC_UNUSED,
13367+    GDBusMethodInvocation *invocation,
13368+    const gchar *const *proxies)
13369+{
13370+  g_dbus_method_invocation_return_value (invocation,
13371+    g_variant_new ("(^as)",
13372+                   proxies));
13373+}
13374+
13375+/* ------------------------------------------------------------------------ */
13376+
13377+/**
13378+ * GXdpProxyResolverProxy:
13379+ *
13380+ * The #GXdpProxyResolverProxy structure contains only private data and should only be accessed using the provided API.
13381+ */
13382+
13383+/**
13384+ * GXdpProxyResolverProxyClass:
13385+ * @parent_class: The parent class.
13386+ *
13387+ * Class structure for #GXdpProxyResolverProxy.
13388+ */
13389+
13390+struct _GXdpProxyResolverProxyPrivate
13391+{
13392+  GData *qdata;
13393+};
13394+
13395+static void gxdp_proxy_resolver_proxy_iface_init (GXdpProxyResolverIface *iface);
13396+
13397+#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
13398+G_DEFINE_TYPE_WITH_CODE (GXdpProxyResolverProxy, gxdp_proxy_resolver_proxy, G_TYPE_DBUS_PROXY,
13399+                         G_ADD_PRIVATE (GXdpProxyResolverProxy)
13400+                         G_IMPLEMENT_INTERFACE (GXDP_TYPE_PROXY_RESOLVER, gxdp_proxy_resolver_proxy_iface_init))
13401+
13402+#else
13403+G_DEFINE_TYPE_WITH_CODE (GXdpProxyResolverProxy, gxdp_proxy_resolver_proxy, G_TYPE_DBUS_PROXY,
13404+                         G_IMPLEMENT_INTERFACE (GXDP_TYPE_PROXY_RESOLVER, gxdp_proxy_resolver_proxy_iface_init))
13405+
13406+#endif
13407+static void
13408+gxdp_proxy_resolver_proxy_finalize (GObject *object)
13409+{
13410+  GXdpProxyResolverProxy *proxy = GXDP_PROXY_RESOLVER_PROXY (object);
13411+  g_datalist_clear (&proxy->priv->qdata);
13412+  G_OBJECT_CLASS (gxdp_proxy_resolver_proxy_parent_class)->finalize (object);
13413+}
13414+
13415+static void
13416+gxdp_proxy_resolver_proxy_get_property (GObject      *object,
13417+  guint         prop_id,
13418+  GValue       *value,
13419+  GParamSpec   *pspec G_GNUC_UNUSED)
13420+{
13421+  const _ExtendedGDBusPropertyInfo *info;
13422+  GVariant *variant;
13423+  g_assert (prop_id != 0 && prop_id - 1 < 1);
13424+  info = (const _ExtendedGDBusPropertyInfo *) _gxdp_proxy_resolver_property_info_pointers[prop_id - 1];
13425+  variant = g_dbus_proxy_get_cached_property (G_DBUS_PROXY (object), info->parent_struct.name);
13426+  if (info->use_gvariant)
13427+    {
13428+      g_value_set_variant (value, variant);
13429+    }
13430+  else
13431+    {
13432+      if (variant != NULL)
13433+        g_dbus_gvariant_to_gvalue (variant, value);
13434+    }
13435+  if (variant != NULL)
13436+    g_variant_unref (variant);
13437+}
13438+
13439+static void
13440+gxdp_proxy_resolver_proxy_set_property_cb (GDBusProxy *proxy,
13441+  GAsyncResult *res,
13442+  gpointer      user_data)
13443+{
13444+  const _ExtendedGDBusPropertyInfo *info = user_data;
13445+  GError *error;
13446+  GVariant *_ret;
13447+  error = NULL;
13448+  _ret = g_dbus_proxy_call_finish (proxy, res, &error);
13449+  if (!_ret)
13450+    {
13451+      g_warning ("Error setting property '%s' on interface org.freedesktop.portal.ProxyResolver: %s (%s, %d)",
13452+                 info->parent_struct.name,
13453+                 error->message, g_quark_to_string (error->domain), error->code);
13454+      g_error_free (error);
13455+    }
13456+  else
13457+    {
13458+      g_variant_unref (_ret);
13459+    }
13460+}
13461+
13462+static void
13463+gxdp_proxy_resolver_proxy_set_property (GObject      *object,
13464+  guint         prop_id,
13465+  const GValue *value,
13466+  GParamSpec   *pspec G_GNUC_UNUSED)
13467+{
13468+  const _ExtendedGDBusPropertyInfo *info;
13469+  GVariant *variant;
13470+  g_assert (prop_id != 0 && prop_id - 1 < 1);
13471+  info = (const _ExtendedGDBusPropertyInfo *) _gxdp_proxy_resolver_property_info_pointers[prop_id - 1];
13472+  variant = g_dbus_gvalue_to_gvariant (value, G_VARIANT_TYPE (info->parent_struct.signature));
13473+  g_dbus_proxy_call (G_DBUS_PROXY (object),
13474+    "org.freedesktop.DBus.Properties.Set",
13475+    g_variant_new ("(ssv)", "org.freedesktop.portal.ProxyResolver", info->parent_struct.name, variant),
13476+    G_DBUS_CALL_FLAGS_NONE,
13477+    -1,
13478+    NULL, (GAsyncReadyCallback) gxdp_proxy_resolver_proxy_set_property_cb, (GDBusPropertyInfo *) &info->parent_struct);
13479+  g_variant_unref (variant);
13480+}
13481+
13482+static void
13483+gxdp_proxy_resolver_proxy_g_signal (GDBusProxy *proxy,
13484+  const gchar *sender_name G_GNUC_UNUSED,
13485+  const gchar *signal_name,
13486+  GVariant *parameters)
13487+{
13488+  _ExtendedGDBusSignalInfo *info;
13489+  GVariantIter iter;
13490+  GVariant *child;
13491+  GValue *paramv;
13492+  gsize num_params;
13493+  gsize n;
13494+  guint signal_id;
13495+  info = (_ExtendedGDBusSignalInfo *) g_dbus_interface_info_lookup_signal ((GDBusInterfaceInfo *) &_gxdp_proxy_resolver_interface_info.parent_struct, signal_name);
13496+  if (info == NULL)
13497+    return;
13498+  num_params = g_variant_n_children (parameters);
13499+  paramv = g_new0 (GValue, num_params + 1);
13500+  g_value_init (&paramv[0], GXDP_TYPE_PROXY_RESOLVER);
13501+  g_value_set_object (&paramv[0], proxy);
13502+  g_variant_iter_init (&iter, parameters);
13503+  n = 1;
13504+  while ((child = g_variant_iter_next_value (&iter)) != NULL)
13505+    {
13506+      _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.args[n - 1];
13507+      if (arg_info->use_gvariant)
13508+        {
13509+          g_value_init (&paramv[n], G_TYPE_VARIANT);
13510+          g_value_set_variant (&paramv[n], child);
13511+          n++;
13512+        }
13513+      else
13514+        g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
13515+      g_variant_unref (child);
13516+    }
13517+  signal_id = g_signal_lookup (info->signal_name, GXDP_TYPE_PROXY_RESOLVER);
13518+  g_signal_emitv (paramv, signal_id, 0, NULL);
13519+  for (n = 0; n < num_params + 1; n++)
13520+    g_value_unset (&paramv[n]);
13521+  g_free (paramv);
13522+}
13523+
13524+static void
13525+gxdp_proxy_resolver_proxy_g_properties_changed (GDBusProxy *_proxy,
13526+  GVariant *changed_properties,
13527+  const gchar *const *invalidated_properties)
13528+{
13529+  GXdpProxyResolverProxy *proxy = GXDP_PROXY_RESOLVER_PROXY (_proxy);
13530+  guint n;
13531+  const gchar *key;
13532+  GVariantIter *iter;
13533+  _ExtendedGDBusPropertyInfo *info;
13534+  g_variant_get (changed_properties, "a{sv}", &iter);
13535+  while (g_variant_iter_next (iter, "{&sv}", &key, NULL))
13536+    {
13537+      info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_gxdp_proxy_resolver_interface_info.parent_struct, key);
13538+      g_datalist_remove_data (&proxy->priv->qdata, key);
13539+      if (info != NULL)
13540+        g_object_notify (G_OBJECT (proxy), info->hyphen_name);
13541+    }
13542+  g_variant_iter_free (iter);
13543+  for (n = 0; invalidated_properties[n] != NULL; n++)
13544+    {
13545+      info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_gxdp_proxy_resolver_interface_info.parent_struct, invalidated_properties[n]);
13546+      g_datalist_remove_data (&proxy->priv->qdata, invalidated_properties[n]);
13547+      if (info != NULL)
13548+        g_object_notify (G_OBJECT (proxy), info->hyphen_name);
13549+    }
13550+}
13551+
13552+static guint
13553+gxdp_proxy_resolver_proxy_get_version (GXdpProxyResolver *object)
13554+{
13555+  GXdpProxyResolverProxy *proxy = GXDP_PROXY_RESOLVER_PROXY (object);
13556+  GVariant *variant;
13557+  guint value = 0;
13558+  variant = g_dbus_proxy_get_cached_property (G_DBUS_PROXY (proxy), "version");
13559+  if (variant != NULL)
13560+    {
13561+      value = g_variant_get_uint32 (variant);
13562+      g_variant_unref (variant);
13563+    }
13564+  return value;
13565+}
13566+
13567+static void
13568+gxdp_proxy_resolver_proxy_init (GXdpProxyResolverProxy *proxy)
13569+{
13570+#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
13571+  proxy->priv = gxdp_proxy_resolver_proxy_get_instance_private (proxy);
13572+#else
13573+  proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, GXDP_TYPE_PROXY_RESOLVER_PROXY, GXdpProxyResolverProxyPrivate);
13574+#endif
13575+
13576+  g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), gxdp_proxy_resolver_interface_info ());
13577+}
13578+
13579+static void
13580+gxdp_proxy_resolver_proxy_class_init (GXdpProxyResolverProxyClass *klass)
13581+{
13582+  GObjectClass *gobject_class;
13583+  GDBusProxyClass *proxy_class;
13584+
13585+  gobject_class = G_OBJECT_CLASS (klass);
13586+  gobject_class->finalize     = gxdp_proxy_resolver_proxy_finalize;
13587+  gobject_class->get_property = gxdp_proxy_resolver_proxy_get_property;
13588+  gobject_class->set_property = gxdp_proxy_resolver_proxy_set_property;
13589+
13590+  proxy_class = G_DBUS_PROXY_CLASS (klass);
13591+  proxy_class->g_signal = gxdp_proxy_resolver_proxy_g_signal;
13592+  proxy_class->g_properties_changed = gxdp_proxy_resolver_proxy_g_properties_changed;
13593+
13594+  gxdp_proxy_resolver_override_properties (gobject_class, 1);
13595+
13596+#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
13597+  g_type_class_add_private (klass, sizeof (GXdpProxyResolverProxyPrivate));
13598+#endif
13599+}
13600+
13601+static void
13602+gxdp_proxy_resolver_proxy_iface_init (GXdpProxyResolverIface *iface)
13603+{
13604+  iface->get_version = gxdp_proxy_resolver_proxy_get_version;
13605+}
13606+
13607+/**
13608+ * gxdp_proxy_resolver_proxy_new:
13609+ * @connection: A #GDBusConnection.
13610+ * @flags: Flags from the #GDBusProxyFlags enumeration.
13611+ * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
13612+ * @object_path: An object path.
13613+ * @cancellable: (nullable): A #GCancellable or %NULL.
13614+ * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
13615+ * @user_data: User data to pass to @callback.
13616+ *
13617+ * Asynchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-freedesktop-portal-ProxyResolver.top_of_page">org.freedesktop.portal.ProxyResolver</link>. See g_dbus_proxy_new() for more details.
13618+ *
13619+ * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from (see g_main_context_push_thread_default()).
13620+ * You can then call gxdp_proxy_resolver_proxy_new_finish() to get the result of the operation.
13621+ *
13622+ * See gxdp_proxy_resolver_proxy_new_sync() for the synchronous, blocking version of this constructor.
13623+ */
13624+void
13625+gxdp_proxy_resolver_proxy_new (
13626+    GDBusConnection     *connection,
13627+    GDBusProxyFlags      flags,
13628+    const gchar         *name,
13629+    const gchar         *object_path,
13630+    GCancellable        *cancellable,
13631+    GAsyncReadyCallback  callback,
13632+    gpointer             user_data)
13633+{
13634+  g_async_initable_new_async (GXDP_TYPE_PROXY_RESOLVER_PROXY, G_PRIORITY_DEFAULT, cancellable, callback, user_data, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.freedesktop.portal.ProxyResolver", NULL);
13635+}
13636+
13637+/**
13638+ * gxdp_proxy_resolver_proxy_new_finish:
13639+ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to gxdp_proxy_resolver_proxy_new().
13640+ * @error: Return location for error or %NULL
13641+ *
13642+ * Finishes an operation started with gxdp_proxy_resolver_proxy_new().
13643+ *
13644+ * Returns: (transfer full) (type GXdpProxyResolverProxy): The constructed proxy object or %NULL if @error is set.
13645+ */
13646+GXdpProxyResolver *
13647+gxdp_proxy_resolver_proxy_new_finish (
13648+    GAsyncResult        *res,
13649+    GError             **error)
13650+{
13651+  GObject *ret;
13652+  GObject *source_object;
13653+  source_object = g_async_result_get_source_object (res);
13654+  ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
13655+  g_object_unref (source_object);
13656+  if (ret != NULL)
13657+    return GXDP_PROXY_RESOLVER (ret);
13658+  else
13659+    return NULL;
13660+}
13661+
13662+/**
13663+ * gxdp_proxy_resolver_proxy_new_sync:
13664+ * @connection: A #GDBusConnection.
13665+ * @flags: Flags from the #GDBusProxyFlags enumeration.
13666+ * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
13667+ * @object_path: An object path.
13668+ * @cancellable: (nullable): A #GCancellable or %NULL.
13669+ * @error: Return location for error or %NULL
13670+ *
13671+ * Synchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-freedesktop-portal-ProxyResolver.top_of_page">org.freedesktop.portal.ProxyResolver</link>. See g_dbus_proxy_new_sync() for more details.
13672+ *
13673+ * The calling thread is blocked until a reply is received.
13674+ *
13675+ * See gxdp_proxy_resolver_proxy_new() for the asynchronous version of this constructor.
13676+ *
13677+ * Returns: (transfer full) (type GXdpProxyResolverProxy): The constructed proxy object or %NULL if @error is set.
13678+ */
13679+GXdpProxyResolver *
13680+gxdp_proxy_resolver_proxy_new_sync (
13681+    GDBusConnection     *connection,
13682+    GDBusProxyFlags      flags,
13683+    const gchar         *name,
13684+    const gchar         *object_path,
13685+    GCancellable        *cancellable,
13686+    GError             **error)
13687+{
13688+  GInitable *ret;
13689+  ret = g_initable_new (GXDP_TYPE_PROXY_RESOLVER_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.freedesktop.portal.ProxyResolver", NULL);
13690+  if (ret != NULL)
13691+    return GXDP_PROXY_RESOLVER (ret);
13692+  else
13693+    return NULL;
13694+}
13695+
13696+
13697+/**
13698+ * gxdp_proxy_resolver_proxy_new_for_bus:
13699+ * @bus_type: A #GBusType.
13700+ * @flags: Flags from the #GDBusProxyFlags enumeration.
13701+ * @name: A bus name (well-known or unique).
13702+ * @object_path: An object path.
13703+ * @cancellable: (nullable): A #GCancellable or %NULL.
13704+ * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
13705+ * @user_data: User data to pass to @callback.
13706+ *
13707+ * Like gxdp_proxy_resolver_proxy_new() but takes a #GBusType instead of a #GDBusConnection.
13708+ *
13709+ * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from (see g_main_context_push_thread_default()).
13710+ * You can then call gxdp_proxy_resolver_proxy_new_for_bus_finish() to get the result of the operation.
13711+ *
13712+ * See gxdp_proxy_resolver_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.
13713+ */
13714+void
13715+gxdp_proxy_resolver_proxy_new_for_bus (
13716+    GBusType             bus_type,
13717+    GDBusProxyFlags      flags,
13718+    const gchar         *name,
13719+    const gchar         *object_path,
13720+    GCancellable        *cancellable,
13721+    GAsyncReadyCallback  callback,
13722+    gpointer             user_data)
13723+{
13724+  g_async_initable_new_async (GXDP_TYPE_PROXY_RESOLVER_PROXY, G_PRIORITY_DEFAULT, cancellable, callback, user_data, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.freedesktop.portal.ProxyResolver", NULL);
13725+}
13726+
13727+/**
13728+ * gxdp_proxy_resolver_proxy_new_for_bus_finish:
13729+ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to gxdp_proxy_resolver_proxy_new_for_bus().
13730+ * @error: Return location for error or %NULL
13731+ *
13732+ * Finishes an operation started with gxdp_proxy_resolver_proxy_new_for_bus().
13733+ *
13734+ * Returns: (transfer full) (type GXdpProxyResolverProxy): The constructed proxy object or %NULL if @error is set.
13735+ */
13736+GXdpProxyResolver *
13737+gxdp_proxy_resolver_proxy_new_for_bus_finish (
13738+    GAsyncResult        *res,
13739+    GError             **error)
13740+{
13741+  GObject *ret;
13742+  GObject *source_object;
13743+  source_object = g_async_result_get_source_object (res);
13744+  ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
13745+  g_object_unref (source_object);
13746+  if (ret != NULL)
13747+    return GXDP_PROXY_RESOLVER (ret);
13748+  else
13749+    return NULL;
13750+}
13751+
13752+/**
13753+ * gxdp_proxy_resolver_proxy_new_for_bus_sync:
13754+ * @bus_type: A #GBusType.
13755+ * @flags: Flags from the #GDBusProxyFlags enumeration.
13756+ * @name: A bus name (well-known or unique).
13757+ * @object_path: An object path.
13758+ * @cancellable: (nullable): A #GCancellable or %NULL.
13759+ * @error: Return location for error or %NULL
13760+ *
13761+ * Like gxdp_proxy_resolver_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.
13762+ *
13763+ * The calling thread is blocked until a reply is received.
13764+ *
13765+ * See gxdp_proxy_resolver_proxy_new_for_bus() for the asynchronous version of this constructor.
13766+ *
13767+ * Returns: (transfer full) (type GXdpProxyResolverProxy): The constructed proxy object or %NULL if @error is set.
13768+ */
13769+GXdpProxyResolver *
13770+gxdp_proxy_resolver_proxy_new_for_bus_sync (
13771+    GBusType             bus_type,
13772+    GDBusProxyFlags      flags,
13773+    const gchar         *name,
13774+    const gchar         *object_path,
13775+    GCancellable        *cancellable,
13776+    GError             **error)
13777+{
13778+  GInitable *ret;
13779+  ret = g_initable_new (GXDP_TYPE_PROXY_RESOLVER_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.freedesktop.portal.ProxyResolver", NULL);
13780+  if (ret != NULL)
13781+    return GXDP_PROXY_RESOLVER (ret);
13782+  else
13783+    return NULL;
13784+}
13785+
13786+
13787+/* ------------------------------------------------------------------------ */
13788+
13789+/**
13790+ * GXdpProxyResolverSkeleton:
13791+ *
13792+ * The #GXdpProxyResolverSkeleton structure contains only private data and should only be accessed using the provided API.
13793+ */
13794+
13795+/**
13796+ * GXdpProxyResolverSkeletonClass:
13797+ * @parent_class: The parent class.
13798+ *
13799+ * Class structure for #GXdpProxyResolverSkeleton.
13800+ */
13801+
13802+struct _GXdpProxyResolverSkeletonPrivate
13803+{
13804+  GValue *properties;
13805+  GList *changed_properties;
13806+  GSource *changed_properties_idle_source;
13807+  GMainContext *context;
13808+  GMutex lock;
13809+};
13810+
13811+static void
13812+_gxdp_proxy_resolver_skeleton_handle_method_call (
13813+  GDBusConnection *connection G_GNUC_UNUSED,
13814+  const gchar *sender G_GNUC_UNUSED,
13815+  const gchar *object_path G_GNUC_UNUSED,
13816+  const gchar *interface_name,
13817+  const gchar *method_name,
13818+  GVariant *parameters,
13819+  GDBusMethodInvocation *invocation,
13820+  gpointer user_data)
13821+{
13822+  GXdpProxyResolverSkeleton *skeleton = GXDP_PROXY_RESOLVER_SKELETON (user_data);
13823+  _ExtendedGDBusMethodInfo *info;
13824+  GVariantIter iter;
13825+  GVariant *child;
13826+  GValue *paramv;
13827+  gsize num_params;
13828+  guint num_extra;
13829+  gsize n;
13830+  guint signal_id;
13831+  GValue return_value = G_VALUE_INIT;
13832+  info = (_ExtendedGDBusMethodInfo *) g_dbus_method_invocation_get_method_info (invocation);
13833+  g_assert (info != NULL);
13834+  num_params = g_variant_n_children (parameters);
13835+  num_extra = info->pass_fdlist ? 3 : 2;  paramv = g_new0 (GValue, num_params + num_extra);
13836+  n = 0;
13837+  g_value_init (&paramv[n], GXDP_TYPE_PROXY_RESOLVER);
13838+  g_value_set_object (&paramv[n++], skeleton);
13839+  g_value_init (&paramv[n], G_TYPE_DBUS_METHOD_INVOCATION);
13840+  g_value_set_object (&paramv[n++], invocation);
13841+  if (info->pass_fdlist)
13842+    {
13843+#ifdef G_OS_UNIX
13844+      g_value_init (&paramv[n], G_TYPE_UNIX_FD_LIST);
13845+      g_value_set_object (&paramv[n++], g_dbus_message_get_unix_fd_list (g_dbus_method_invocation_get_message (invocation)));
13846+#else
13847+      g_assert_not_reached ();
13848+#endif
13849+    }
13850+  g_variant_iter_init (&iter, parameters);
13851+  while ((child = g_variant_iter_next_value (&iter)) != NULL)
13852+    {
13853+      _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.in_args[n - num_extra];
13854+      if (arg_info->use_gvariant)
13855+        {
13856+          g_value_init (&paramv[n], G_TYPE_VARIANT);
13857+          g_value_set_variant (&paramv[n], child);
13858+          n++;
13859+        }
13860+      else
13861+        g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
13862+      g_variant_unref (child);
13863+    }
13864+  signal_id = g_signal_lookup (info->signal_name, GXDP_TYPE_PROXY_RESOLVER);
13865+  g_value_init (&return_value, G_TYPE_BOOLEAN);
13866+  g_signal_emitv (paramv, signal_id, 0, &return_value);
13867+  if (!g_value_get_boolean (&return_value))
13868+    g_dbus_method_invocation_return_error (invocation, G_DBUS_ERROR, G_DBUS_ERROR_UNKNOWN_METHOD, "Method %s is not implemented on interface %s", method_name, interface_name);
13869+  g_value_unset (&return_value);
13870+  for (n = 0; n < num_params + num_extra; n++)
13871+    g_value_unset (&paramv[n]);
13872+  g_free (paramv);
13873+}
13874+
13875+static GVariant *
13876+_gxdp_proxy_resolver_skeleton_handle_get_property (
13877+  GDBusConnection *connection G_GNUC_UNUSED,
13878+  const gchar *sender G_GNUC_UNUSED,
13879+  const gchar *object_path G_GNUC_UNUSED,
13880+  const gchar *interface_name G_GNUC_UNUSED,
13881+  const gchar *property_name,
13882+  GError **error,
13883+  gpointer user_data)
13884+{
13885+  GXdpProxyResolverSkeleton *skeleton = GXDP_PROXY_RESOLVER_SKELETON (user_data);
13886+  GValue value = G_VALUE_INIT;
13887+  GParamSpec *pspec;
13888+  _ExtendedGDBusPropertyInfo *info;
13889+  GVariant *ret;
13890+  ret = NULL;
13891+  info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_gxdp_proxy_resolver_interface_info.parent_struct, property_name);
13892+  g_assert (info != NULL);
13893+  pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
13894+  if (pspec == NULL)
13895+    {
13896+      g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
13897+    }
13898+  else
13899+    {
13900+      g_value_init (&value, pspec->value_type);
13901+      g_object_get_property (G_OBJECT (skeleton), info->hyphen_name, &value);
13902+      ret = g_dbus_gvalue_to_gvariant (&value, G_VARIANT_TYPE (info->parent_struct.signature));
13903+      g_value_unset (&value);
13904+    }
13905+  return ret;
13906+}
13907+
13908+static gboolean
13909+_gxdp_proxy_resolver_skeleton_handle_set_property (
13910+  GDBusConnection *connection G_GNUC_UNUSED,
13911+  const gchar *sender G_GNUC_UNUSED,
13912+  const gchar *object_path G_GNUC_UNUSED,
13913+  const gchar *interface_name G_GNUC_UNUSED,
13914+  const gchar *property_name,
13915+  GVariant *variant,
13916+  GError **error,
13917+  gpointer user_data)
13918+{
13919+  GXdpProxyResolverSkeleton *skeleton = GXDP_PROXY_RESOLVER_SKELETON (user_data);
13920+  GValue value = G_VALUE_INIT;
13921+  GParamSpec *pspec;
13922+  _ExtendedGDBusPropertyInfo *info;
13923+  gboolean ret;
13924+  ret = FALSE;
13925+  info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_gxdp_proxy_resolver_interface_info.parent_struct, property_name);
13926+  g_assert (info != NULL);
13927+  pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
13928+  if (pspec == NULL)
13929+    {
13930+      g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
13931+    }
13932+  else
13933+    {
13934+      if (info->use_gvariant)
13935+        g_value_set_variant (&value, variant);
13936+      else
13937+        g_dbus_gvariant_to_gvalue (variant, &value);
13938+      g_object_set_property (G_OBJECT (skeleton), info->hyphen_name, &value);
13939+      g_value_unset (&value);
13940+      ret = TRUE;
13941+    }
13942+  return ret;
13943+}
13944+
13945+static const GDBusInterfaceVTable _gxdp_proxy_resolver_skeleton_vtable =
13946+{
13947+  _gxdp_proxy_resolver_skeleton_handle_method_call,
13948+  _gxdp_proxy_resolver_skeleton_handle_get_property,
13949+  _gxdp_proxy_resolver_skeleton_handle_set_property,
13950+  {NULL}
13951+};
13952+
13953+static GDBusInterfaceInfo *
13954+gxdp_proxy_resolver_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
13955+{
13956+  return gxdp_proxy_resolver_interface_info ();
13957+}
13958+
13959+static GDBusInterfaceVTable *
13960+gxdp_proxy_resolver_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
13961+{
13962+  return (GDBusInterfaceVTable *) &_gxdp_proxy_resolver_skeleton_vtable;
13963+}
13964+
13965+static GVariant *
13966+gxdp_proxy_resolver_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton)
13967+{
13968+  GXdpProxyResolverSkeleton *skeleton = GXDP_PROXY_RESOLVER_SKELETON (_skeleton);
13969+
13970+  GVariantBuilder builder;
13971+  guint n;
13972+  g_variant_builder_init (&builder, G_VARIANT_TYPE ("a{sv}"));
13973+  if (_gxdp_proxy_resolver_interface_info.parent_struct.properties == NULL)
13974+    goto out;
13975+  for (n = 0; _gxdp_proxy_resolver_interface_info.parent_struct.properties[n] != NULL; n++)
13976+    {
13977+      GDBusPropertyInfo *info = _gxdp_proxy_resolver_interface_info.parent_struct.properties[n];
13978+      if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE)
13979+        {
13980+          GVariant *value;
13981+          value = _gxdp_proxy_resolver_skeleton_handle_get_property (g_dbus_interface_skeleton_get_connection (G_DBUS_INTERFACE_SKELETON (skeleton)), NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "org.freedesktop.portal.ProxyResolver", info->name, NULL, skeleton);
13982+          if (value != NULL)
13983+            {
13984+              g_variant_take_ref (value);
13985+              g_variant_builder_add (&builder, "{sv}", info->name, value);
13986+              g_variant_unref (value);
13987+            }
13988+        }
13989+    }
13990+out:
13991+  return g_variant_builder_end (&builder);
13992+}
13993+
13994+static gboolean _gxdp_proxy_resolver_emit_changed (gpointer user_data);
13995+
13996+static void
13997+gxdp_proxy_resolver_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton)
13998+{
13999+  GXdpProxyResolverSkeleton *skeleton = GXDP_PROXY_RESOLVER_SKELETON (_skeleton);
14000+  gboolean emit_changed = FALSE;
14001+
14002+  g_mutex_lock (&skeleton->priv->lock);
14003+  if (skeleton->priv->changed_properties_idle_source != NULL)
14004+    {
14005+      g_source_destroy (skeleton->priv->changed_properties_idle_source);
14006+      skeleton->priv->changed_properties_idle_source = NULL;
14007+      emit_changed = TRUE;
14008+    }
14009+  g_mutex_unlock (&skeleton->priv->lock);
14010+
14011+  if (emit_changed)
14012+    _gxdp_proxy_resolver_emit_changed (skeleton);
14013+}
14014+
14015+static void gxdp_proxy_resolver_skeleton_iface_init (GXdpProxyResolverIface *iface);
14016+#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
14017+G_DEFINE_TYPE_WITH_CODE (GXdpProxyResolverSkeleton, gxdp_proxy_resolver_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
14018+                         G_ADD_PRIVATE (GXdpProxyResolverSkeleton)
14019+                         G_IMPLEMENT_INTERFACE (GXDP_TYPE_PROXY_RESOLVER, gxdp_proxy_resolver_skeleton_iface_init))
14020+
14021+#else
14022+G_DEFINE_TYPE_WITH_CODE (GXdpProxyResolverSkeleton, gxdp_proxy_resolver_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
14023+                         G_IMPLEMENT_INTERFACE (GXDP_TYPE_PROXY_RESOLVER, gxdp_proxy_resolver_skeleton_iface_init))
14024+
14025+#endif
14026+static void
14027+gxdp_proxy_resolver_skeleton_finalize (GObject *object)
14028+{
14029+  GXdpProxyResolverSkeleton *skeleton = GXDP_PROXY_RESOLVER_SKELETON (object);
14030+  guint n;
14031+  for (n = 0; n < 1; n++)
14032+    g_value_unset (&skeleton->priv->properties[n]);
14033+  g_free (skeleton->priv->properties);
14034+  g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free);
14035+  if (skeleton->priv->changed_properties_idle_source != NULL)
14036+    g_source_destroy (skeleton->priv->changed_properties_idle_source);
14037+  g_main_context_unref (skeleton->priv->context);
14038+  g_mutex_clear (&skeleton->priv->lock);
14039+  G_OBJECT_CLASS (gxdp_proxy_resolver_skeleton_parent_class)->finalize (object);
14040+}
14041+
14042+static void
14043+gxdp_proxy_resolver_skeleton_get_property (GObject      *object,
14044+  guint         prop_id,
14045+  GValue       *value,
14046+  GParamSpec   *pspec G_GNUC_UNUSED)
14047+{
14048+  GXdpProxyResolverSkeleton *skeleton = GXDP_PROXY_RESOLVER_SKELETON (object);
14049+  g_assert (prop_id != 0 && prop_id - 1 < 1);
14050+  g_mutex_lock (&skeleton->priv->lock);
14051+  g_value_copy (&skeleton->priv->properties[prop_id - 1], value);
14052+  g_mutex_unlock (&skeleton->priv->lock);
14053+}
14054+
14055+static gboolean
14056+_gxdp_proxy_resolver_emit_changed (gpointer user_data)
14057+{
14058+  GXdpProxyResolverSkeleton *skeleton = GXDP_PROXY_RESOLVER_SKELETON (user_data);
14059+  GList *l;
14060+  GVariantBuilder builder;
14061+  GVariantBuilder invalidated_builder;
14062+  guint num_changes;
14063+
14064+  g_mutex_lock (&skeleton->priv->lock);
14065+  g_variant_builder_init (&builder, G_VARIANT_TYPE ("a{sv}"));
14066+  g_variant_builder_init (&invalidated_builder, G_VARIANT_TYPE ("as"));
14067+  for (l = skeleton->priv->changed_properties, num_changes = 0; l != NULL; l = l->next)
14068+    {
14069+      ChangedProperty *cp = l->data;
14070+      GVariant *variant;
14071+      const GValue *cur_value;
14072+
14073+      cur_value = &skeleton->priv->properties[cp->prop_id - 1];
14074+      if (!_g_value_equal (cur_value, &cp->orig_value))
14075+        {
14076+          variant = g_dbus_gvalue_to_gvariant (cur_value, G_VARIANT_TYPE (cp->info->parent_struct.signature));
14077+          g_variant_builder_add (&builder, "{sv}", cp->info->parent_struct.name, variant);
14078+          g_variant_unref (variant);
14079+          num_changes++;
14080+        }
14081+    }
14082+  if (num_changes > 0)
14083+    {
14084+      GList *connections, *ll;
14085+      GVariant *signal_variant;
14086+      signal_variant = g_variant_ref_sink (g_variant_new ("(sa{sv}as)", "org.freedesktop.portal.ProxyResolver",
14087+                                           &builder, &invalidated_builder));
14088+      connections = g_dbus_interface_skeleton_get_connections (G_DBUS_INTERFACE_SKELETON (skeleton));
14089+      for (ll = connections; ll != NULL; ll = ll->next)
14090+        {
14091+          GDBusConnection *connection = ll->data;
14092+
14093+          g_dbus_connection_emit_signal (connection,
14094+                                         NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)),
14095+                                         "org.freedesktop.DBus.Properties",
14096+                                         "PropertiesChanged",
14097+                                         signal_variant,
14098+                                         NULL);
14099+        }
14100+      g_variant_unref (signal_variant);
14101+      g_list_free_full (connections, g_object_unref);
14102+    }
14103+  else
14104+    {
14105+      g_variant_builder_clear (&builder);
14106+      g_variant_builder_clear (&invalidated_builder);
14107+    }
14108+  g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free);
14109+  skeleton->priv->changed_properties = NULL;
14110+  skeleton->priv->changed_properties_idle_source = NULL;
14111+  g_mutex_unlock (&skeleton->priv->lock);
14112+  return FALSE;
14113+}
14114+
14115+static void
14116+_gxdp_proxy_resolver_schedule_emit_changed (GXdpProxyResolverSkeleton *skeleton, const _ExtendedGDBusPropertyInfo *info, guint prop_id, const GValue *orig_value)
14117+{
14118+  ChangedProperty *cp;
14119+  GList *l;
14120+  cp = NULL;
14121+  for (l = skeleton->priv->changed_properties; l != NULL; l = l->next)
14122+    {
14123+      ChangedProperty *i_cp = l->data;
14124+      if (i_cp->info == info)
14125+        {
14126+          cp = i_cp;
14127+          break;
14128+        }
14129+    }
14130+  if (cp == NULL)
14131+    {
14132+      cp = g_new0 (ChangedProperty, 1);
14133+      cp->prop_id = prop_id;
14134+      cp->info = info;
14135+      skeleton->priv->changed_properties = g_list_prepend (skeleton->priv->changed_properties, cp);
14136+      g_value_init (&cp->orig_value, G_VALUE_TYPE (orig_value));
14137+      g_value_copy (orig_value, &cp->orig_value);
14138+    }
14139+}
14140+
14141+static void
14142+gxdp_proxy_resolver_skeleton_notify (GObject      *object,
14143+  GParamSpec *pspec G_GNUC_UNUSED)
14144+{
14145+  GXdpProxyResolverSkeleton *skeleton = GXDP_PROXY_RESOLVER_SKELETON (object);
14146+  g_mutex_lock (&skeleton->priv->lock);
14147+  if (skeleton->priv->changed_properties != NULL &&
14148+      skeleton->priv->changed_properties_idle_source == NULL)
14149+    {
14150+      skeleton->priv->changed_properties_idle_source = g_idle_source_new ();
14151+      g_source_set_priority (skeleton->priv->changed_properties_idle_source, G_PRIORITY_DEFAULT);
14152+      g_source_set_callback (skeleton->priv->changed_properties_idle_source, _gxdp_proxy_resolver_emit_changed, g_object_ref (skeleton), (GDestroyNotify) g_object_unref);
14153+      g_source_set_name (skeleton->priv->changed_properties_idle_source, "[generated] _gxdp_proxy_resolver_emit_changed");
14154+      g_source_attach (skeleton->priv->changed_properties_idle_source, skeleton->priv->context);
14155+      g_source_unref (skeleton->priv->changed_properties_idle_source);
14156+    }
14157+  g_mutex_unlock (&skeleton->priv->lock);
14158+}
14159+
14160+static void
14161+gxdp_proxy_resolver_skeleton_set_property (GObject      *object,
14162+  guint         prop_id,
14163+  const GValue *value,
14164+  GParamSpec   *pspec)
14165+{
14166+  const _ExtendedGDBusPropertyInfo *info;
14167+  GXdpProxyResolverSkeleton *skeleton = GXDP_PROXY_RESOLVER_SKELETON (object);
14168+  g_assert (prop_id != 0 && prop_id - 1 < 1);
14169+  info = (const _ExtendedGDBusPropertyInfo *) _gxdp_proxy_resolver_property_info_pointers[prop_id - 1];
14170+  g_mutex_lock (&skeleton->priv->lock);
14171+  g_object_freeze_notify (object);
14172+  if (!_g_value_equal (value, &skeleton->priv->properties[prop_id - 1]))
14173+    {
14174+      if (g_dbus_interface_skeleton_get_connection (G_DBUS_INTERFACE_SKELETON (skeleton)) != NULL &&
14175+          info->emits_changed_signal)
14176+        _gxdp_proxy_resolver_schedule_emit_changed (skeleton, info, prop_id, &skeleton->priv->properties[prop_id - 1]);
14177+      g_value_copy (value, &skeleton->priv->properties[prop_id - 1]);
14178+      g_object_notify_by_pspec (object, pspec);
14179+    }
14180+  g_mutex_unlock (&skeleton->priv->lock);
14181+  g_object_thaw_notify (object);
14182+}
14183+
14184+static void
14185+gxdp_proxy_resolver_skeleton_init (GXdpProxyResolverSkeleton *skeleton)
14186+{
14187+#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
14188+  skeleton->priv = gxdp_proxy_resolver_skeleton_get_instance_private (skeleton);
14189+#else
14190+  skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, GXDP_TYPE_PROXY_RESOLVER_SKELETON, GXdpProxyResolverSkeletonPrivate);
14191+#endif
14192+
14193+  g_mutex_init (&skeleton->priv->lock);
14194+  skeleton->priv->context = g_main_context_ref_thread_default ();
14195+  skeleton->priv->properties = g_new0 (GValue, 1);
14196+  g_value_init (&skeleton->priv->properties[0], G_TYPE_UINT);
14197+}
14198+
14199+static guint
14200+gxdp_proxy_resolver_skeleton_get_version (GXdpProxyResolver *object)
14201+{
14202+  GXdpProxyResolverSkeleton *skeleton = GXDP_PROXY_RESOLVER_SKELETON (object);
14203+  guint value;
14204+  g_mutex_lock (&skeleton->priv->lock);
14205+  value = g_value_get_uint (&(skeleton->priv->properties[0]));
14206+  g_mutex_unlock (&skeleton->priv->lock);
14207+  return value;
14208+}
14209+
14210+static void
14211+gxdp_proxy_resolver_skeleton_class_init (GXdpProxyResolverSkeletonClass *klass)
14212+{
14213+  GObjectClass *gobject_class;
14214+  GDBusInterfaceSkeletonClass *skeleton_class;
14215+
14216+  gobject_class = G_OBJECT_CLASS (klass);
14217+  gobject_class->finalize = gxdp_proxy_resolver_skeleton_finalize;
14218+  gobject_class->get_property = gxdp_proxy_resolver_skeleton_get_property;
14219+  gobject_class->set_property = gxdp_proxy_resolver_skeleton_set_property;
14220+  gobject_class->notify       = gxdp_proxy_resolver_skeleton_notify;
14221+
14222+
14223+  gxdp_proxy_resolver_override_properties (gobject_class, 1);
14224+
14225+  skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass);
14226+  skeleton_class->get_info = gxdp_proxy_resolver_skeleton_dbus_interface_get_info;
14227+  skeleton_class->get_properties = gxdp_proxy_resolver_skeleton_dbus_interface_get_properties;
14228+  skeleton_class->flush = gxdp_proxy_resolver_skeleton_dbus_interface_flush;
14229+  skeleton_class->get_vtable = gxdp_proxy_resolver_skeleton_dbus_interface_get_vtable;
14230+
14231+#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
14232+  g_type_class_add_private (klass, sizeof (GXdpProxyResolverSkeletonPrivate));
14233+#endif
14234+}
14235+
14236+static void
14237+gxdp_proxy_resolver_skeleton_iface_init (GXdpProxyResolverIface *iface)
14238+{
14239+  iface->get_version = gxdp_proxy_resolver_skeleton_get_version;
14240+}
14241+
14242+/**
14243+ * gxdp_proxy_resolver_skeleton_new:
14244+ *
14245+ * Creates a skeleton object for the D-Bus interface <link linkend="gdbus-interface-org-freedesktop-portal-ProxyResolver.top_of_page">org.freedesktop.portal.ProxyResolver</link>.
14246+ *
14247+ * Returns: (transfer full) (type GXdpProxyResolverSkeleton): The skeleton object.
14248+ */
14249+GXdpProxyResolver *
14250+gxdp_proxy_resolver_skeleton_new (void)
14251+{
14252+  return GXDP_PROXY_RESOLVER (g_object_new (GXDP_TYPE_PROXY_RESOLVER_SKELETON, NULL));
14253+}
14254+
14255+/* ------------------------------------------------------------------------
14256+ * Code for interface org.freedesktop.portal.Trash
14257+ * ------------------------------------------------------------------------
14258+ */
14259+
14260+/**
14261+ * SECTION:GXdpTrash
14262+ * @title: GXdpTrash
14263+ * @short_description: Generated C code for the org.freedesktop.portal.Trash D-Bus interface
14264+ *
14265+ * This section contains code for working with the <link linkend="gdbus-interface-org-freedesktop-portal-Trash.top_of_page">org.freedesktop.portal.Trash</link> D-Bus interface in C.
14266+ */
14267+
14268+/* ---- Introspection data for org.freedesktop.portal.Trash ---- */
14269+
14270+static const _ExtendedGDBusArgInfo _gxdp_trash_method_info_trash_file_IN_ARG_fd =
14271+{
14272+  {
14273+    -1,
14274+    (gchar *) "fd",
14275+    (gchar *) "h",
14276+    NULL
14277+  },
14278+  FALSE
14279+};
14280+
14281+static const GDBusArgInfo * const _gxdp_trash_method_info_trash_file_IN_ARG_pointers[] =
14282+{
14283+  &_gxdp_trash_method_info_trash_file_IN_ARG_fd.parent_struct,
14284+  NULL
14285+};
14286+
14287+static const _ExtendedGDBusArgInfo _gxdp_trash_method_info_trash_file_OUT_ARG_result =
14288+{
14289+  {
14290+    -1,
14291+    (gchar *) "result",
14292+    (gchar *) "u",
14293+    NULL
14294+  },
14295+  FALSE
14296+};
14297+
14298+static const GDBusArgInfo * const _gxdp_trash_method_info_trash_file_OUT_ARG_pointers[] =
14299+{
14300+  &_gxdp_trash_method_info_trash_file_OUT_ARG_result.parent_struct,
14301+  NULL
14302+};
14303+
14304+static const _ExtendedGDBusMethodInfo _gxdp_trash_method_info_trash_file =
14305+{
14306+  {
14307+    -1,
14308+    (gchar *) "TrashFile",
14309+    (GDBusArgInfo **) &_gxdp_trash_method_info_trash_file_IN_ARG_pointers,
14310+    (GDBusArgInfo **) &_gxdp_trash_method_info_trash_file_OUT_ARG_pointers,
14311+    NULL
14312+  },
14313+  "handle-trash-file",
14314+  TRUE
14315+};
14316+
14317+static const GDBusMethodInfo * const _gxdp_trash_method_info_pointers[] =
14318+{
14319+  &_gxdp_trash_method_info_trash_file.parent_struct,
14320+  NULL
14321+};
14322+
14323+static const _ExtendedGDBusPropertyInfo _gxdp_trash_property_info_version =
14324+{
14325+  {
14326+    -1,
14327+    (gchar *) "version",
14328+    (gchar *) "u",
14329+    G_DBUS_PROPERTY_INFO_FLAGS_READABLE,
14330+    NULL
14331+  },
14332+  "version",
14333+  FALSE,
14334+  TRUE
14335+};
14336+
14337+static const GDBusPropertyInfo * const _gxdp_trash_property_info_pointers[] =
14338+{
14339+  &_gxdp_trash_property_info_version.parent_struct,
14340+  NULL
14341+};
14342+
14343+static const _ExtendedGDBusInterfaceInfo _gxdp_trash_interface_info =
14344+{
14345+  {
14346+    -1,
14347+    (gchar *) "org.freedesktop.portal.Trash",
14348+    (GDBusMethodInfo **) &_gxdp_trash_method_info_pointers,
14349+    NULL,
14350+    (GDBusPropertyInfo **) &_gxdp_trash_property_info_pointers,
14351+    NULL
14352+  },
14353+  "trash",
14354+};
14355+
14356+
14357+/**
14358+ * gxdp_trash_interface_info:
14359+ *
14360+ * Gets a machine-readable description of the <link linkend="gdbus-interface-org-freedesktop-portal-Trash.top_of_page">org.freedesktop.portal.Trash</link> D-Bus interface.
14361+ *
14362+ * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free.
14363+ */
14364+GDBusInterfaceInfo *
14365+gxdp_trash_interface_info (void)
14366+{
14367+  return (GDBusInterfaceInfo *) &_gxdp_trash_interface_info.parent_struct;
14368+}
14369+
14370+/**
14371+ * gxdp_trash_override_properties:
14372+ * @klass: The class structure for a #GObject derived class.
14373+ * @property_id_begin: The property id to assign to the first overridden property.
14374+ *
14375+ * Overrides all #GObject properties in the #GXdpTrash interface for a concrete class.
14376+ * The properties are overridden in the order they are defined.
14377+ *
14378+ * Returns: The last property id.
14379+ */
14380+guint
14381+gxdp_trash_override_properties (GObjectClass *klass, guint property_id_begin)
14382+{
14383+  g_object_class_override_property (klass, property_id_begin++, "version");
14384+  return property_id_begin - 1;
14385+}
14386+
14387+
14388+
14389+/**
14390+ * GXdpTrash:
14391+ *
14392+ * Abstract interface type for the D-Bus interface <link linkend="gdbus-interface-org-freedesktop-portal-Trash.top_of_page">org.freedesktop.portal.Trash</link>.
14393+ */
14394+
14395+/**
14396+ * GXdpTrashIface:
14397+ * @parent_iface: The parent interface.
14398+ * @handle_trash_file: Handler for the #GXdpTrash::handle-trash-file signal.
14399+ * @get_version: Getter for the #GXdpTrash:version property.
14400+ *
14401+ * Virtual table for the D-Bus interface <link linkend="gdbus-interface-org-freedesktop-portal-Trash.top_of_page">org.freedesktop.portal.Trash</link>.
14402+ */
14403+
14404+typedef GXdpTrashIface GXdpTrashInterface;
14405+G_DEFINE_INTERFACE (GXdpTrash, gxdp_trash, G_TYPE_OBJECT)
14406+
14407+static void
14408+gxdp_trash_default_init (GXdpTrashIface *iface)
14409+{
14410+  /* GObject signals for incoming D-Bus method calls: */
14411+  /**
14412+   * GXdpTrash::handle-trash-file:
14413+   * @object: A #GXdpTrash.
14414+   * @invocation: A #GDBusMethodInvocation.
14415+   * @fd_list: (nullable): A #GUnixFDList or %NULL.
14416+   * @arg_fd: Argument passed by remote caller.
14417+   *
14418+   * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-freedesktop-portal-Trash.TrashFile">TrashFile()</link> D-Bus method.
14419+   *
14420+   * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call gxdp_trash_complete_trash_file() or e.g. g_dbus_method_invocation_return_error() on it) and no other signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
14421+   *
14422+   * Returns: %G_DBUS_METHOD_INVOCATION_HANDLED or %TRUE if the invocation was handled, %G_DBUS_METHOD_INVOCATION_UNHANDLED or %FALSE to let other signal handlers run.
14423+   */
14424+  g_signal_new ("handle-trash-file",
14425+    G_TYPE_FROM_INTERFACE (iface),
14426+    G_SIGNAL_RUN_LAST,
14427+    G_STRUCT_OFFSET (GXdpTrashIface, handle_trash_file),
14428+    g_signal_accumulator_true_handled,
14429+    NULL,
14430+    g_cclosure_marshal_generic,
14431+    G_TYPE_BOOLEAN,
14432+    3,
14433+    G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_UNIX_FD_LIST, G_TYPE_VARIANT);
14434+
14435+  /* GObject properties for D-Bus properties: */
14436+  /**
14437+   * GXdpTrash:version:
14438+   *
14439+   * Represents the D-Bus property <link linkend="gdbus-property-org-freedesktop-portal-Trash.version">"version"</link>.
14440+   *
14441+   * Since the D-Bus property for this #GObject property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.
14442+   */
14443+  g_object_interface_install_property (iface,
14444+    g_param_spec_uint ("version", "version", "version", 0, G_MAXUINT32, 0, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
14445+}
14446+
14447+/**
14448+ * gxdp_trash_get_version: (skip)
14449+ * @object: A #GXdpTrash.
14450+ *
14451+ * Gets the value of the <link linkend="gdbus-property-org-freedesktop-portal-Trash.version">"version"</link> D-Bus property.
14452+ *
14453+ * Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
14454+ *
14455+ * Returns: The property value.
14456+ */
14457+guint
14458+gxdp_trash_get_version (GXdpTrash *object)
14459+{
14460+  return GXDP_TRASH_GET_IFACE (object)->get_version (object);
14461+}
14462+
14463+/**
14464+ * gxdp_trash_set_version: (skip)
14465+ * @object: A #GXdpTrash.
14466+ * @value: The value to set.
14467+ *
14468+ * Sets the <link linkend="gdbus-property-org-freedesktop-portal-Trash.version">"version"</link> D-Bus property to @value.
14469+ *
14470+ * Since this D-Bus property is not writable, it is only meaningful to use this function on the service-side.
14471+ */
14472+void
14473+gxdp_trash_set_version (GXdpTrash *object, guint value)
14474+{
14475+  g_object_set (G_OBJECT (object), "version", value, NULL);
14476+}
14477+
14478+/**
14479+ * gxdp_trash_call_trash_file:
14480+ * @proxy: A #GXdpTrashProxy.
14481+ * @arg_fd: Argument to pass with the method invocation.
14482+ * @fd_list: (nullable): A #GUnixFDList or %NULL.
14483+ * @cancellable: (nullable): A #GCancellable or %NULL.
14484+ * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
14485+ * @user_data: User data to pass to @callback.
14486+ *
14487+ * Asynchronously invokes the <link linkend="gdbus-method-org-freedesktop-portal-Trash.TrashFile">TrashFile()</link> D-Bus method on @proxy.
14488+ * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from (see g_main_context_push_thread_default()).
14489+ * You can then call gxdp_trash_call_trash_file_finish() to get the result of the operation.
14490+ *
14491+ * See gxdp_trash_call_trash_file_sync() for the synchronous, blocking version of this method.
14492+ */
14493+void
14494+gxdp_trash_call_trash_file (
14495+    GXdpTrash *proxy,
14496+    GVariant *arg_fd,
14497+    GUnixFDList *fd_list,
14498+    GCancellable *cancellable,
14499+    GAsyncReadyCallback callback,
14500+    gpointer user_data)
14501+{
14502+  g_dbus_proxy_call_with_unix_fd_list (G_DBUS_PROXY (proxy),
14503+    "TrashFile",
14504+    g_variant_new ("(@h)",
14505+                   arg_fd),
14506+    G_DBUS_CALL_FLAGS_NONE,
14507+    -1,
14508+    fd_list,
14509+    cancellable,
14510+    callback,
14511+    user_data);
14512+}
14513+
14514+/**
14515+ * gxdp_trash_call_trash_file_finish:
14516+ * @proxy: A #GXdpTrashProxy.
14517+ * @out_result: (out) (optional): Return location for return parameter or %NULL to ignore.
14518+ * @out_fd_list: (out) (optional): Return location for a #GUnixFDList or %NULL to ignore.
14519+ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to gxdp_trash_call_trash_file().
14520+ * @error: Return location for error or %NULL.
14521+ *
14522+ * Finishes an operation started with gxdp_trash_call_trash_file().
14523+ *
14524+ * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
14525+ */
14526+gboolean
14527+gxdp_trash_call_trash_file_finish (
14528+    GXdpTrash *proxy,
14529+    guint *out_result,
14530+    GUnixFDList **out_fd_list,
14531+    GAsyncResult *res,
14532+    GError **error)
14533+{
14534+  GVariant *_ret;
14535+  _ret = g_dbus_proxy_call_with_unix_fd_list_finish (G_DBUS_PROXY (proxy), out_fd_list, res, error);
14536+  if (_ret == NULL)
14537+    goto _out;
14538+  g_variant_get (_ret,
14539+                 "(u)",
14540+                 out_result);
14541+  g_variant_unref (_ret);
14542+_out:
14543+  return _ret != NULL;
14544+}
14545+
14546+/**
14547+ * gxdp_trash_call_trash_file_sync:
14548+ * @proxy: A #GXdpTrashProxy.
14549+ * @arg_fd: Argument to pass with the method invocation.
14550+ * @fd_list: (nullable): A #GUnixFDList or %NULL.
14551+ * @out_result: (out) (optional): Return location for return parameter or %NULL to ignore.
14552+ * @out_fd_list: (out): Return location for a #GUnixFDList or %NULL.
14553+ * @cancellable: (nullable): A #GCancellable or %NULL.
14554+ * @error: Return location for error or %NULL.
14555+ *
14556+ * Synchronously invokes the <link linkend="gdbus-method-org-freedesktop-portal-Trash.TrashFile">TrashFile()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
14557+ *
14558+ * See gxdp_trash_call_trash_file() for the asynchronous version of this method.
14559+ *
14560+ * Returns: (skip): %TRUE if the call succeeded, %FALSE if @error is set.
14561+ */
14562+gboolean
14563+gxdp_trash_call_trash_file_sync (
14564+    GXdpTrash *proxy,
14565+    GVariant *arg_fd,
14566+    GUnixFDList  *fd_list,
14567+    guint *out_result,
14568+    GUnixFDList **out_fd_list,
14569+    GCancellable *cancellable,
14570+    GError **error)
14571+{
14572+  GVariant *_ret;
14573+  _ret = g_dbus_proxy_call_with_unix_fd_list_sync (G_DBUS_PROXY (proxy),
14574+    "TrashFile",
14575+    g_variant_new ("(@h)",
14576+                   arg_fd),
14577+    G_DBUS_CALL_FLAGS_NONE,
14578+    -1,
14579+    fd_list,
14580+    out_fd_list,
14581+    cancellable,
14582+    error);
14583+  if (_ret == NULL)
14584+    goto _out;
14585+  g_variant_get (_ret,
14586+                 "(u)",
14587+                 out_result);
14588+  g_variant_unref (_ret);
14589+_out:
14590+  return _ret != NULL;
14591+}
14592+
14593+/**
14594+ * gxdp_trash_complete_trash_file:
14595+ * @object: A #GXdpTrash.
14596+ * @invocation: (transfer full): A #GDBusMethodInvocation.
14597+ * @fd_list: (nullable): A #GUnixFDList or %NULL.
14598+ * @result: Parameter to return.
14599+ *
14600+ * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-freedesktop-portal-Trash.TrashFile">TrashFile()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
14601+ *
14602+ * This method will free @invocation, you cannot use it afterwards.
14603+ */
14604+void
14605+gxdp_trash_complete_trash_file (
14606+    GXdpTrash *object G_GNUC_UNUSED,
14607+    GDBusMethodInvocation *invocation,
14608+    GUnixFDList *fd_list,
14609+    guint result)
14610+{
14611+  g_dbus_method_invocation_return_value_with_unix_fd_list (invocation,
14612+    g_variant_new ("(u)",
14613+                   result),
14614+    fd_list);
14615+}
14616+
14617+/* ------------------------------------------------------------------------ */
14618+
14619+/**
14620+ * GXdpTrashProxy:
14621+ *
14622+ * The #GXdpTrashProxy structure contains only private data and should only be accessed using the provided API.
14623+ */
14624+
14625+/**
14626+ * GXdpTrashProxyClass:
14627+ * @parent_class: The parent class.
14628+ *
14629+ * Class structure for #GXdpTrashProxy.
14630+ */
14631+
14632+struct _GXdpTrashProxyPrivate
14633+{
14634+  GData *qdata;
14635+};
14636+
14637+static void gxdp_trash_proxy_iface_init (GXdpTrashIface *iface);
14638+
14639+#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
14640+G_DEFINE_TYPE_WITH_CODE (GXdpTrashProxy, gxdp_trash_proxy, G_TYPE_DBUS_PROXY,
14641+                         G_ADD_PRIVATE (GXdpTrashProxy)
14642+                         G_IMPLEMENT_INTERFACE (GXDP_TYPE_TRASH, gxdp_trash_proxy_iface_init))
14643+
14644+#else
14645+G_DEFINE_TYPE_WITH_CODE (GXdpTrashProxy, gxdp_trash_proxy, G_TYPE_DBUS_PROXY,
14646+                         G_IMPLEMENT_INTERFACE (GXDP_TYPE_TRASH, gxdp_trash_proxy_iface_init))
14647+
14648+#endif
14649+static void
14650+gxdp_trash_proxy_finalize (GObject *object)
14651+{
14652+  GXdpTrashProxy *proxy = GXDP_TRASH_PROXY (object);
14653+  g_datalist_clear (&proxy->priv->qdata);
14654+  G_OBJECT_CLASS (gxdp_trash_proxy_parent_class)->finalize (object);
14655+}
14656+
14657+static void
14658+gxdp_trash_proxy_get_property (GObject      *object,
14659+  guint         prop_id,
14660+  GValue       *value,
14661+  GParamSpec   *pspec G_GNUC_UNUSED)
14662+{
14663+  const _ExtendedGDBusPropertyInfo *info;
14664+  GVariant *variant;
14665+  g_assert (prop_id != 0 && prop_id - 1 < 1);
14666+  info = (const _ExtendedGDBusPropertyInfo *) _gxdp_trash_property_info_pointers[prop_id - 1];
14667+  variant = g_dbus_proxy_get_cached_property (G_DBUS_PROXY (object), info->parent_struct.name);
14668+  if (info->use_gvariant)
14669+    {
14670+      g_value_set_variant (value, variant);
14671+    }
14672+  else
14673+    {
14674+      if (variant != NULL)
14675+        g_dbus_gvariant_to_gvalue (variant, value);
14676+    }
14677+  if (variant != NULL)
14678+    g_variant_unref (variant);
14679+}
14680+
14681+static void
14682+gxdp_trash_proxy_set_property_cb (GDBusProxy *proxy,
14683+  GAsyncResult *res,
14684+  gpointer      user_data)
14685+{
14686+  const _ExtendedGDBusPropertyInfo *info = user_data;
14687+  GError *error;
14688+  GVariant *_ret;
14689+  error = NULL;
14690+  _ret = g_dbus_proxy_call_finish (proxy, res, &error);
14691+  if (!_ret)
14692+    {
14693+      g_warning ("Error setting property '%s' on interface org.freedesktop.portal.Trash: %s (%s, %d)",
14694+                 info->parent_struct.name,
14695+                 error->message, g_quark_to_string (error->domain), error->code);
14696+      g_error_free (error);
14697+    }
14698+  else
14699+    {
14700+      g_variant_unref (_ret);
14701+    }
14702+}
14703+
14704+static void
14705+gxdp_trash_proxy_set_property (GObject      *object,
14706+  guint         prop_id,
14707+  const GValue *value,
14708+  GParamSpec   *pspec G_GNUC_UNUSED)
14709+{
14710+  const _ExtendedGDBusPropertyInfo *info;
14711+  GVariant *variant;
14712+  g_assert (prop_id != 0 && prop_id - 1 < 1);
14713+  info = (const _ExtendedGDBusPropertyInfo *) _gxdp_trash_property_info_pointers[prop_id - 1];
14714+  variant = g_dbus_gvalue_to_gvariant (value, G_VARIANT_TYPE (info->parent_struct.signature));
14715+  g_dbus_proxy_call (G_DBUS_PROXY (object),
14716+    "org.freedesktop.DBus.Properties.Set",
14717+    g_variant_new ("(ssv)", "org.freedesktop.portal.Trash", info->parent_struct.name, variant),
14718+    G_DBUS_CALL_FLAGS_NONE,
14719+    -1,
14720+    NULL, (GAsyncReadyCallback) gxdp_trash_proxy_set_property_cb, (GDBusPropertyInfo *) &info->parent_struct);
14721+  g_variant_unref (variant);
14722+}
14723+
14724+static void
14725+gxdp_trash_proxy_g_signal (GDBusProxy *proxy,
14726+  const gchar *sender_name G_GNUC_UNUSED,
14727+  const gchar *signal_name,
14728+  GVariant *parameters)
14729+{
14730+  _ExtendedGDBusSignalInfo *info;
14731+  GVariantIter iter;
14732+  GVariant *child;
14733+  GValue *paramv;
14734+  gsize num_params;
14735+  gsize n;
14736+  guint signal_id;
14737+  info = (_ExtendedGDBusSignalInfo *) g_dbus_interface_info_lookup_signal ((GDBusInterfaceInfo *) &_gxdp_trash_interface_info.parent_struct, signal_name);
14738+  if (info == NULL)
14739+    return;
14740+  num_params = g_variant_n_children (parameters);
14741+  paramv = g_new0 (GValue, num_params + 1);
14742+  g_value_init (&paramv[0], GXDP_TYPE_TRASH);
14743+  g_value_set_object (&paramv[0], proxy);
14744+  g_variant_iter_init (&iter, parameters);
14745+  n = 1;
14746+  while ((child = g_variant_iter_next_value (&iter)) != NULL)
14747+    {
14748+      _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.args[n - 1];
14749+      if (arg_info->use_gvariant)
14750+        {
14751+          g_value_init (&paramv[n], G_TYPE_VARIANT);
14752+          g_value_set_variant (&paramv[n], child);
14753+          n++;
14754+        }
14755+      else
14756+        g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
14757+      g_variant_unref (child);
14758+    }
14759+  signal_id = g_signal_lookup (info->signal_name, GXDP_TYPE_TRASH);
14760+  g_signal_emitv (paramv, signal_id, 0, NULL);
14761+  for (n = 0; n < num_params + 1; n++)
14762+    g_value_unset (&paramv[n]);
14763+  g_free (paramv);
14764+}
14765+
14766+static void
14767+gxdp_trash_proxy_g_properties_changed (GDBusProxy *_proxy,
14768+  GVariant *changed_properties,
14769+  const gchar *const *invalidated_properties)
14770+{
14771+  GXdpTrashProxy *proxy = GXDP_TRASH_PROXY (_proxy);
14772+  guint n;
14773+  const gchar *key;
14774+  GVariantIter *iter;
14775+  _ExtendedGDBusPropertyInfo *info;
14776+  g_variant_get (changed_properties, "a{sv}", &iter);
14777+  while (g_variant_iter_next (iter, "{&sv}", &key, NULL))
14778+    {
14779+      info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_gxdp_trash_interface_info.parent_struct, key);
14780+      g_datalist_remove_data (&proxy->priv->qdata, key);
14781+      if (info != NULL)
14782+        g_object_notify (G_OBJECT (proxy), info->hyphen_name);
14783+    }
14784+  g_variant_iter_free (iter);
14785+  for (n = 0; invalidated_properties[n] != NULL; n++)
14786+    {
14787+      info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_gxdp_trash_interface_info.parent_struct, invalidated_properties[n]);
14788+      g_datalist_remove_data (&proxy->priv->qdata, invalidated_properties[n]);
14789+      if (info != NULL)
14790+        g_object_notify (G_OBJECT (proxy), info->hyphen_name);
14791+    }
14792+}
14793+
14794+static guint
14795+gxdp_trash_proxy_get_version (GXdpTrash *object)
14796+{
14797+  GXdpTrashProxy *proxy = GXDP_TRASH_PROXY (object);
14798+  GVariant *variant;
14799+  guint value = 0;
14800+  variant = g_dbus_proxy_get_cached_property (G_DBUS_PROXY (proxy), "version");
14801+  if (variant != NULL)
14802+    {
14803+      value = g_variant_get_uint32 (variant);
14804+      g_variant_unref (variant);
14805+    }
14806+  return value;
14807+}
14808+
14809+static void
14810+gxdp_trash_proxy_init (GXdpTrashProxy *proxy)
14811+{
14812+#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
14813+  proxy->priv = gxdp_trash_proxy_get_instance_private (proxy);
14814+#else
14815+  proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, GXDP_TYPE_TRASH_PROXY, GXdpTrashProxyPrivate);
14816+#endif
14817+
14818+  g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), gxdp_trash_interface_info ());
14819+}
14820+
14821+static void
14822+gxdp_trash_proxy_class_init (GXdpTrashProxyClass *klass)
14823+{
14824+  GObjectClass *gobject_class;
14825+  GDBusProxyClass *proxy_class;
14826+
14827+  gobject_class = G_OBJECT_CLASS (klass);
14828+  gobject_class->finalize     = gxdp_trash_proxy_finalize;
14829+  gobject_class->get_property = gxdp_trash_proxy_get_property;
14830+  gobject_class->set_property = gxdp_trash_proxy_set_property;
14831+
14832+  proxy_class = G_DBUS_PROXY_CLASS (klass);
14833+  proxy_class->g_signal = gxdp_trash_proxy_g_signal;
14834+  proxy_class->g_properties_changed = gxdp_trash_proxy_g_properties_changed;
14835+
14836+  gxdp_trash_override_properties (gobject_class, 1);
14837+
14838+#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
14839+  g_type_class_add_private (klass, sizeof (GXdpTrashProxyPrivate));
14840+#endif
14841+}
14842+
14843+static void
14844+gxdp_trash_proxy_iface_init (GXdpTrashIface *iface)
14845+{
14846+  iface->get_version = gxdp_trash_proxy_get_version;
14847+}
14848+
14849+/**
14850+ * gxdp_trash_proxy_new:
14851+ * @connection: A #GDBusConnection.
14852+ * @flags: Flags from the #GDBusProxyFlags enumeration.
14853+ * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
14854+ * @object_path: An object path.
14855+ * @cancellable: (nullable): A #GCancellable or %NULL.
14856+ * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
14857+ * @user_data: User data to pass to @callback.
14858+ *
14859+ * Asynchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-freedesktop-portal-Trash.top_of_page">org.freedesktop.portal.Trash</link>. See g_dbus_proxy_new() for more details.
14860+ *
14861+ * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from (see g_main_context_push_thread_default()).
14862+ * You can then call gxdp_trash_proxy_new_finish() to get the result of the operation.
14863+ *
14864+ * See gxdp_trash_proxy_new_sync() for the synchronous, blocking version of this constructor.
14865+ */
14866+void
14867+gxdp_trash_proxy_new (
14868+    GDBusConnection     *connection,
14869+    GDBusProxyFlags      flags,
14870+    const gchar         *name,
14871+    const gchar         *object_path,
14872+    GCancellable        *cancellable,
14873+    GAsyncReadyCallback  callback,
14874+    gpointer             user_data)
14875+{
14876+  g_async_initable_new_async (GXDP_TYPE_TRASH_PROXY, G_PRIORITY_DEFAULT, cancellable, callback, user_data, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.freedesktop.portal.Trash", NULL);
14877+}
14878+
14879+/**
14880+ * gxdp_trash_proxy_new_finish:
14881+ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to gxdp_trash_proxy_new().
14882+ * @error: Return location for error or %NULL
14883+ *
14884+ * Finishes an operation started with gxdp_trash_proxy_new().
14885+ *
14886+ * Returns: (transfer full) (type GXdpTrashProxy): The constructed proxy object or %NULL if @error is set.
14887+ */
14888+GXdpTrash *
14889+gxdp_trash_proxy_new_finish (
14890+    GAsyncResult        *res,
14891+    GError             **error)
14892+{
14893+  GObject *ret;
14894+  GObject *source_object;
14895+  source_object = g_async_result_get_source_object (res);
14896+  ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
14897+  g_object_unref (source_object);
14898+  if (ret != NULL)
14899+    return GXDP_TRASH (ret);
14900+  else
14901+    return NULL;
14902+}
14903+
14904+/**
14905+ * gxdp_trash_proxy_new_sync:
14906+ * @connection: A #GDBusConnection.
14907+ * @flags: Flags from the #GDBusProxyFlags enumeration.
14908+ * @name: (nullable): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
14909+ * @object_path: An object path.
14910+ * @cancellable: (nullable): A #GCancellable or %NULL.
14911+ * @error: Return location for error or %NULL
14912+ *
14913+ * Synchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-freedesktop-portal-Trash.top_of_page">org.freedesktop.portal.Trash</link>. See g_dbus_proxy_new_sync() for more details.
14914+ *
14915+ * The calling thread is blocked until a reply is received.
14916+ *
14917+ * See gxdp_trash_proxy_new() for the asynchronous version of this constructor.
14918+ *
14919+ * Returns: (transfer full) (type GXdpTrashProxy): The constructed proxy object or %NULL if @error is set.
14920+ */
14921+GXdpTrash *
14922+gxdp_trash_proxy_new_sync (
14923+    GDBusConnection     *connection,
14924+    GDBusProxyFlags      flags,
14925+    const gchar         *name,
14926+    const gchar         *object_path,
14927+    GCancellable        *cancellable,
14928+    GError             **error)
14929+{
14930+  GInitable *ret;
14931+  ret = g_initable_new (GXDP_TYPE_TRASH_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.freedesktop.portal.Trash", NULL);
14932+  if (ret != NULL)
14933+    return GXDP_TRASH (ret);
14934+  else
14935+    return NULL;
14936+}
14937+
14938+
14939+/**
14940+ * gxdp_trash_proxy_new_for_bus:
14941+ * @bus_type: A #GBusType.
14942+ * @flags: Flags from the #GDBusProxyFlags enumeration.
14943+ * @name: A bus name (well-known or unique).
14944+ * @object_path: An object path.
14945+ * @cancellable: (nullable): A #GCancellable or %NULL.
14946+ * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
14947+ * @user_data: User data to pass to @callback.
14948+ *
14949+ * Like gxdp_trash_proxy_new() but takes a #GBusType instead of a #GDBusConnection.
14950+ *
14951+ * When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from (see g_main_context_push_thread_default()).
14952+ * You can then call gxdp_trash_proxy_new_for_bus_finish() to get the result of the operation.
14953+ *
14954+ * See gxdp_trash_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.
14955+ */
14956+void
14957+gxdp_trash_proxy_new_for_bus (
14958+    GBusType             bus_type,
14959+    GDBusProxyFlags      flags,
14960+    const gchar         *name,
14961+    const gchar         *object_path,
14962+    GCancellable        *cancellable,
14963+    GAsyncReadyCallback  callback,
14964+    gpointer             user_data)
14965+{
14966+  g_async_initable_new_async (GXDP_TYPE_TRASH_PROXY, G_PRIORITY_DEFAULT, cancellable, callback, user_data, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.freedesktop.portal.Trash", NULL);
14967+}
14968+
14969+/**
14970+ * gxdp_trash_proxy_new_for_bus_finish:
14971+ * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to gxdp_trash_proxy_new_for_bus().
14972+ * @error: Return location for error or %NULL
14973+ *
14974+ * Finishes an operation started with gxdp_trash_proxy_new_for_bus().
14975+ *
14976+ * Returns: (transfer full) (type GXdpTrashProxy): The constructed proxy object or %NULL if @error is set.
14977+ */
14978+GXdpTrash *
14979+gxdp_trash_proxy_new_for_bus_finish (
14980+    GAsyncResult        *res,
14981+    GError             **error)
14982+{
14983+  GObject *ret;
14984+  GObject *source_object;
14985+  source_object = g_async_result_get_source_object (res);
14986+  ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
14987+  g_object_unref (source_object);
14988+  if (ret != NULL)
14989+    return GXDP_TRASH (ret);
14990+  else
14991+    return NULL;
14992+}
14993+
14994+/**
14995+ * gxdp_trash_proxy_new_for_bus_sync:
14996+ * @bus_type: A #GBusType.
14997+ * @flags: Flags from the #GDBusProxyFlags enumeration.
14998+ * @name: A bus name (well-known or unique).
14999+ * @object_path: An object path.
15000+ * @cancellable: (nullable): A #GCancellable or %NULL.
15001+ * @error: Return location for error or %NULL
15002+ *
15003+ * Like gxdp_trash_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.
15004+ *
15005+ * The calling thread is blocked until a reply is received.
15006+ *
15007+ * See gxdp_trash_proxy_new_for_bus() for the asynchronous version of this constructor.
15008+ *
15009+ * Returns: (transfer full) (type GXdpTrashProxy): The constructed proxy object or %NULL if @error is set.
15010+ */
15011+GXdpTrash *
15012+gxdp_trash_proxy_new_for_bus_sync (
15013+    GBusType             bus_type,
15014+    GDBusProxyFlags      flags,
15015+    const gchar         *name,
15016+    const gchar         *object_path,
15017+    GCancellable        *cancellable,
15018+    GError             **error)
15019+{
15020+  GInitable *ret;
15021+  ret = g_initable_new (GXDP_TYPE_TRASH_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.freedesktop.portal.Trash", NULL);
15022+  if (ret != NULL)
15023+    return GXDP_TRASH (ret);
15024+  else
15025+    return NULL;
15026+}
15027+
15028+
15029+/* ------------------------------------------------------------------------ */
15030+
15031+/**
15032+ * GXdpTrashSkeleton:
15033+ *
15034+ * The #GXdpTrashSkeleton structure contains only private data and should only be accessed using the provided API.
15035+ */
15036+
15037+/**
15038+ * GXdpTrashSkeletonClass:
15039+ * @parent_class: The parent class.
15040+ *
15041+ * Class structure for #GXdpTrashSkeleton.
15042+ */
15043+
15044+struct _GXdpTrashSkeletonPrivate
15045+{
15046+  GValue *properties;
15047+  GList *changed_properties;
15048+  GSource *changed_properties_idle_source;
15049+  GMainContext *context;
15050+  GMutex lock;
15051+};
15052+
15053+static void
15054+_gxdp_trash_skeleton_handle_method_call (
15055+  GDBusConnection *connection G_GNUC_UNUSED,
15056+  const gchar *sender G_GNUC_UNUSED,
15057+  const gchar *object_path G_GNUC_UNUSED,
15058+  const gchar *interface_name,
15059+  const gchar *method_name,
15060+  GVariant *parameters,
15061+  GDBusMethodInvocation *invocation,
15062+  gpointer user_data)
15063+{
15064+  GXdpTrashSkeleton *skeleton = GXDP_TRASH_SKELETON (user_data);
15065+  _ExtendedGDBusMethodInfo *info;
15066+  GVariantIter iter;
15067+  GVariant *child;
15068+  GValue *paramv;
15069+  gsize num_params;
15070+  guint num_extra;
15071+  gsize n;
15072+  guint signal_id;
15073+  GValue return_value = G_VALUE_INIT;
15074+  info = (_ExtendedGDBusMethodInfo *) g_dbus_method_invocation_get_method_info (invocation);
15075+  g_assert (info != NULL);
15076+  num_params = g_variant_n_children (parameters);
15077+  num_extra = info->pass_fdlist ? 3 : 2;  paramv = g_new0 (GValue, num_params + num_extra);
15078+  n = 0;
15079+  g_value_init (&paramv[n], GXDP_TYPE_TRASH);
15080+  g_value_set_object (&paramv[n++], skeleton);
15081+  g_value_init (&paramv[n], G_TYPE_DBUS_METHOD_INVOCATION);
15082+  g_value_set_object (&paramv[n++], invocation);
15083+  if (info->pass_fdlist)
15084+    {
15085+#ifdef G_OS_UNIX
15086+      g_value_init (&paramv[n], G_TYPE_UNIX_FD_LIST);
15087+      g_value_set_object (&paramv[n++], g_dbus_message_get_unix_fd_list (g_dbus_method_invocation_get_message (invocation)));
15088+#else
15089+      g_assert_not_reached ();
15090+#endif
15091+    }
15092+  g_variant_iter_init (&iter, parameters);
15093+  while ((child = g_variant_iter_next_value (&iter)) != NULL)
15094+    {
15095+      _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.in_args[n - num_extra];
15096+      if (arg_info->use_gvariant)
15097+        {
15098+          g_value_init (&paramv[n], G_TYPE_VARIANT);
15099+          g_value_set_variant (&paramv[n], child);
15100+          n++;
15101+        }
15102+      else
15103+        g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
15104+      g_variant_unref (child);
15105+    }
15106+  signal_id = g_signal_lookup (info->signal_name, GXDP_TYPE_TRASH);
15107+  g_value_init (&return_value, G_TYPE_BOOLEAN);
15108+  g_signal_emitv (paramv, signal_id, 0, &return_value);
15109+  if (!g_value_get_boolean (&return_value))
15110+    g_dbus_method_invocation_return_error (invocation, G_DBUS_ERROR, G_DBUS_ERROR_UNKNOWN_METHOD, "Method %s is not implemented on interface %s", method_name, interface_name);
15111+  g_value_unset (&return_value);
15112+  for (n = 0; n < num_params + num_extra; n++)
15113+    g_value_unset (&paramv[n]);
15114+  g_free (paramv);
15115+}
15116+
15117+static GVariant *
15118+_gxdp_trash_skeleton_handle_get_property (
15119+  GDBusConnection *connection G_GNUC_UNUSED,
15120+  const gchar *sender G_GNUC_UNUSED,
15121+  const gchar *object_path G_GNUC_UNUSED,
15122+  const gchar *interface_name G_GNUC_UNUSED,
15123+  const gchar *property_name,
15124+  GError **error,
15125+  gpointer user_data)
15126+{
15127+  GXdpTrashSkeleton *skeleton = GXDP_TRASH_SKELETON (user_data);
15128+  GValue value = G_VALUE_INIT;
15129+  GParamSpec *pspec;
15130+  _ExtendedGDBusPropertyInfo *info;
15131+  GVariant *ret;
15132+  ret = NULL;
15133+  info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_gxdp_trash_interface_info.parent_struct, property_name);
15134+  g_assert (info != NULL);
15135+  pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
15136+  if (pspec == NULL)
15137+    {
15138+      g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
15139+    }
15140+  else
15141+    {
15142+      g_value_init (&value, pspec->value_type);
15143+      g_object_get_property (G_OBJECT (skeleton), info->hyphen_name, &value);
15144+      ret = g_dbus_gvalue_to_gvariant (&value, G_VARIANT_TYPE (info->parent_struct.signature));
15145+      g_value_unset (&value);
15146+    }
15147+  return ret;
15148+}
15149+
15150+static gboolean
15151+_gxdp_trash_skeleton_handle_set_property (
15152+  GDBusConnection *connection G_GNUC_UNUSED,
15153+  const gchar *sender G_GNUC_UNUSED,
15154+  const gchar *object_path G_GNUC_UNUSED,
15155+  const gchar *interface_name G_GNUC_UNUSED,
15156+  const gchar *property_name,
15157+  GVariant *variant,
15158+  GError **error,
15159+  gpointer user_data)
15160+{
15161+  GXdpTrashSkeleton *skeleton = GXDP_TRASH_SKELETON (user_data);
15162+  GValue value = G_VALUE_INIT;
15163+  GParamSpec *pspec;
15164+  _ExtendedGDBusPropertyInfo *info;
15165+  gboolean ret;
15166+  ret = FALSE;
15167+  info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_gxdp_trash_interface_info.parent_struct, property_name);
15168+  g_assert (info != NULL);
15169+  pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
15170+  if (pspec == NULL)
15171+    {
15172+      g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
15173+    }
15174+  else
15175+    {
15176+      if (info->use_gvariant)
15177+        g_value_set_variant (&value, variant);
15178+      else
15179+        g_dbus_gvariant_to_gvalue (variant, &value);
15180+      g_object_set_property (G_OBJECT (skeleton), info->hyphen_name, &value);
15181+      g_value_unset (&value);
15182+      ret = TRUE;
15183+    }
15184+  return ret;
15185+}
15186+
15187+static const GDBusInterfaceVTable _gxdp_trash_skeleton_vtable =
15188+{
15189+  _gxdp_trash_skeleton_handle_method_call,
15190+  _gxdp_trash_skeleton_handle_get_property,
15191+  _gxdp_trash_skeleton_handle_set_property,
15192+  {NULL}
15193+};
15194+
15195+static GDBusInterfaceInfo *
15196+gxdp_trash_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
15197+{
15198+  return gxdp_trash_interface_info ();
15199+}
15200+
15201+static GDBusInterfaceVTable *
15202+gxdp_trash_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
15203+{
15204+  return (GDBusInterfaceVTable *) &_gxdp_trash_skeleton_vtable;
15205+}
15206+
15207+static GVariant *
15208+gxdp_trash_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton)
15209+{
15210+  GXdpTrashSkeleton *skeleton = GXDP_TRASH_SKELETON (_skeleton);
15211+
15212+  GVariantBuilder builder;
15213+  guint n;
15214+  g_variant_builder_init (&builder, G_VARIANT_TYPE ("a{sv}"));
15215+  if (_gxdp_trash_interface_info.parent_struct.properties == NULL)
15216+    goto out;
15217+  for (n = 0; _gxdp_trash_interface_info.parent_struct.properties[n] != NULL; n++)
15218+    {
15219+      GDBusPropertyInfo *info = _gxdp_trash_interface_info.parent_struct.properties[n];
15220+      if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE)
15221+        {
15222+          GVariant *value;
15223+          value = _gxdp_trash_skeleton_handle_get_property (g_dbus_interface_skeleton_get_connection (G_DBUS_INTERFACE_SKELETON (skeleton)), NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "org.freedesktop.portal.Trash", info->name, NULL, skeleton);
15224+          if (value != NULL)
15225+            {
15226+              g_variant_take_ref (value);
15227+              g_variant_builder_add (&builder, "{sv}", info->name, value);
15228+              g_variant_unref (value);
15229+            }
15230+        }
15231+    }
15232+out:
15233+  return g_variant_builder_end (&builder);
15234+}
15235+
15236+static gboolean _gxdp_trash_emit_changed (gpointer user_data);
15237+
15238+static void
15239+gxdp_trash_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton)
15240+{
15241+  GXdpTrashSkeleton *skeleton = GXDP_TRASH_SKELETON (_skeleton);
15242+  gboolean emit_changed = FALSE;
15243+
15244+  g_mutex_lock (&skeleton->priv->lock);
15245+  if (skeleton->priv->changed_properties_idle_source != NULL)
15246+    {
15247+      g_source_destroy (skeleton->priv->changed_properties_idle_source);
15248+      skeleton->priv->changed_properties_idle_source = NULL;
15249+      emit_changed = TRUE;
15250+    }
15251+  g_mutex_unlock (&skeleton->priv->lock);
15252+
15253+  if (emit_changed)
15254+    _gxdp_trash_emit_changed (skeleton);
15255+}
15256+
15257+static void gxdp_trash_skeleton_iface_init (GXdpTrashIface *iface);
15258+#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
15259+G_DEFINE_TYPE_WITH_CODE (GXdpTrashSkeleton, gxdp_trash_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
15260+                         G_ADD_PRIVATE (GXdpTrashSkeleton)
15261+                         G_IMPLEMENT_INTERFACE (GXDP_TYPE_TRASH, gxdp_trash_skeleton_iface_init))
15262+
15263+#else
15264+G_DEFINE_TYPE_WITH_CODE (GXdpTrashSkeleton, gxdp_trash_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
15265+                         G_IMPLEMENT_INTERFACE (GXDP_TYPE_TRASH, gxdp_trash_skeleton_iface_init))
15266+
15267+#endif
15268+static void
15269+gxdp_trash_skeleton_finalize (GObject *object)
15270+{
15271+  GXdpTrashSkeleton *skeleton = GXDP_TRASH_SKELETON (object);
15272+  guint n;
15273+  for (n = 0; n < 1; n++)
15274+    g_value_unset (&skeleton->priv->properties[n]);
15275+  g_free (skeleton->priv->properties);
15276+  g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free);
15277+  if (skeleton->priv->changed_properties_idle_source != NULL)
15278+    g_source_destroy (skeleton->priv->changed_properties_idle_source);
15279+  g_main_context_unref (skeleton->priv->context);
15280+  g_mutex_clear (&skeleton->priv->lock);
15281+  G_OBJECT_CLASS (gxdp_trash_skeleton_parent_class)->finalize (object);
15282+}
15283+
15284+static void
15285+gxdp_trash_skeleton_get_property (GObject      *object,
15286+  guint         prop_id,
15287+  GValue       *value,
15288+  GParamSpec   *pspec G_GNUC_UNUSED)
15289+{
15290+  GXdpTrashSkeleton *skeleton = GXDP_TRASH_SKELETON (object);
15291+  g_assert (prop_id != 0 && prop_id - 1 < 1);
15292+  g_mutex_lock (&skeleton->priv->lock);
15293+  g_value_copy (&skeleton->priv->properties[prop_id - 1], value);
15294+  g_mutex_unlock (&skeleton->priv->lock);
15295+}
15296+
15297+static gboolean
15298+_gxdp_trash_emit_changed (gpointer user_data)
15299+{
15300+  GXdpTrashSkeleton *skeleton = GXDP_TRASH_SKELETON (user_data);
15301+  GList *l;
15302+  GVariantBuilder builder;
15303+  GVariantBuilder invalidated_builder;
15304+  guint num_changes;
15305+
15306+  g_mutex_lock (&skeleton->priv->lock);
15307+  g_variant_builder_init (&builder, G_VARIANT_TYPE ("a{sv}"));
15308+  g_variant_builder_init (&invalidated_builder, G_VARIANT_TYPE ("as"));
15309+  for (l = skeleton->priv->changed_properties, num_changes = 0; l != NULL; l = l->next)
15310+    {
15311+      ChangedProperty *cp = l->data;
15312+      GVariant *variant;
15313+      const GValue *cur_value;
15314+
15315+      cur_value = &skeleton->priv->properties[cp->prop_id - 1];
15316+      if (!_g_value_equal (cur_value, &cp->orig_value))
15317+        {
15318+          variant = g_dbus_gvalue_to_gvariant (cur_value, G_VARIANT_TYPE (cp->info->parent_struct.signature));
15319+          g_variant_builder_add (&builder, "{sv}", cp->info->parent_struct.name, variant);
15320+          g_variant_unref (variant);
15321+          num_changes++;
15322+        }
15323+    }
15324+  if (num_changes > 0)
15325+    {
15326+      GList *connections, *ll;
15327+      GVariant *signal_variant;
15328+      signal_variant = g_variant_ref_sink (g_variant_new ("(sa{sv}as)", "org.freedesktop.portal.Trash",
15329+                                           &builder, &invalidated_builder));
15330+      connections = g_dbus_interface_skeleton_get_connections (G_DBUS_INTERFACE_SKELETON (skeleton));
15331+      for (ll = connections; ll != NULL; ll = ll->next)
15332+        {
15333+          GDBusConnection *connection = ll->data;
15334+
15335+          g_dbus_connection_emit_signal (connection,
15336+                                         NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)),
15337+                                         "org.freedesktop.DBus.Properties",
15338+                                         "PropertiesChanged",
15339+                                         signal_variant,
15340+                                         NULL);
15341+        }
15342+      g_variant_unref (signal_variant);
15343+      g_list_free_full (connections, g_object_unref);
15344+    }
15345+  else
15346+    {
15347+      g_variant_builder_clear (&builder);
15348+      g_variant_builder_clear (&invalidated_builder);
15349+    }
15350+  g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free);
15351+  skeleton->priv->changed_properties = NULL;
15352+  skeleton->priv->changed_properties_idle_source = NULL;
15353+  g_mutex_unlock (&skeleton->priv->lock);
15354+  return FALSE;
15355+}
15356+
15357+static void
15358+_gxdp_trash_schedule_emit_changed (GXdpTrashSkeleton *skeleton, const _ExtendedGDBusPropertyInfo *info, guint prop_id, const GValue *orig_value)
15359+{
15360+  ChangedProperty *cp;
15361+  GList *l;
15362+  cp = NULL;
15363+  for (l = skeleton->priv->changed_properties; l != NULL; l = l->next)
15364+    {
15365+      ChangedProperty *i_cp = l->data;
15366+      if (i_cp->info == info)
15367+        {
15368+          cp = i_cp;
15369+          break;
15370+        }
15371+    }
15372+  if (cp == NULL)
15373+    {
15374+      cp = g_new0 (ChangedProperty, 1);
15375+      cp->prop_id = prop_id;
15376+      cp->info = info;
15377+      skeleton->priv->changed_properties = g_list_prepend (skeleton->priv->changed_properties, cp);
15378+      g_value_init (&cp->orig_value, G_VALUE_TYPE (orig_value));
15379+      g_value_copy (orig_value, &cp->orig_value);
15380+    }
15381+}
15382+
15383+static void
15384+gxdp_trash_skeleton_notify (GObject      *object,
15385+  GParamSpec *pspec G_GNUC_UNUSED)
15386+{
15387+  GXdpTrashSkeleton *skeleton = GXDP_TRASH_SKELETON (object);
15388+  g_mutex_lock (&skeleton->priv->lock);
15389+  if (skeleton->priv->changed_properties != NULL &&
15390+      skeleton->priv->changed_properties_idle_source == NULL)
15391+    {
15392+      skeleton->priv->changed_properties_idle_source = g_idle_source_new ();
15393+      g_source_set_priority (skeleton->priv->changed_properties_idle_source, G_PRIORITY_DEFAULT);
15394+      g_source_set_callback (skeleton->priv->changed_properties_idle_source, _gxdp_trash_emit_changed, g_object_ref (skeleton), (GDestroyNotify) g_object_unref);
15395+      g_source_set_name (skeleton->priv->changed_properties_idle_source, "[generated] _gxdp_trash_emit_changed");
15396+      g_source_attach (skeleton->priv->changed_properties_idle_source, skeleton->priv->context);
15397+      g_source_unref (skeleton->priv->changed_properties_idle_source);
15398+    }
15399+  g_mutex_unlock (&skeleton->priv->lock);
15400+}
15401+
15402+static void
15403+gxdp_trash_skeleton_set_property (GObject      *object,
15404+  guint         prop_id,
15405+  const GValue *value,
15406+  GParamSpec   *pspec)
15407+{
15408+  const _ExtendedGDBusPropertyInfo *info;
15409+  GXdpTrashSkeleton *skeleton = GXDP_TRASH_SKELETON (object);
15410+  g_assert (prop_id != 0 && prop_id - 1 < 1);
15411+  info = (const _ExtendedGDBusPropertyInfo *) _gxdp_trash_property_info_pointers[prop_id - 1];
15412+  g_mutex_lock (&skeleton->priv->lock);
15413+  g_object_freeze_notify (object);
15414+  if (!_g_value_equal (value, &skeleton->priv->properties[prop_id - 1]))
15415+    {
15416+      if (g_dbus_interface_skeleton_get_connection (G_DBUS_INTERFACE_SKELETON (skeleton)) != NULL &&
15417+          info->emits_changed_signal)
15418+        _gxdp_trash_schedule_emit_changed (skeleton, info, prop_id, &skeleton->priv->properties[prop_id - 1]);
15419+      g_value_copy (value, &skeleton->priv->properties[prop_id - 1]);
15420+      g_object_notify_by_pspec (object, pspec);
15421+    }
15422+  g_mutex_unlock (&skeleton->priv->lock);
15423+  g_object_thaw_notify (object);
15424+}
15425+
15426+static void
15427+gxdp_trash_skeleton_init (GXdpTrashSkeleton *skeleton)
15428+{
15429+#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
15430+  skeleton->priv = gxdp_trash_skeleton_get_instance_private (skeleton);
15431+#else
15432+  skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, GXDP_TYPE_TRASH_SKELETON, GXdpTrashSkeletonPrivate);
15433+#endif
15434+
15435+  g_mutex_init (&skeleton->priv->lock);
15436+  skeleton->priv->context = g_main_context_ref_thread_default ();
15437+  skeleton->priv->properties = g_new0 (GValue, 1);
15438+  g_value_init (&skeleton->priv->properties[0], G_TYPE_UINT);
15439+}
15440+
15441+static guint
15442+gxdp_trash_skeleton_get_version (GXdpTrash *object)
15443+{
15444+  GXdpTrashSkeleton *skeleton = GXDP_TRASH_SKELETON (object);
15445+  guint value;
15446+  g_mutex_lock (&skeleton->priv->lock);
15447+  value = g_value_get_uint (&(skeleton->priv->properties[0]));
15448+  g_mutex_unlock (&skeleton->priv->lock);
15449+  return value;
15450+}
15451+
15452+static void
15453+gxdp_trash_skeleton_class_init (GXdpTrashSkeletonClass *klass)
15454+{
15455+  GObjectClass *gobject_class;
15456+  GDBusInterfaceSkeletonClass *skeleton_class;
15457+
15458+  gobject_class = G_OBJECT_CLASS (klass);
15459+  gobject_class->finalize = gxdp_trash_skeleton_finalize;
15460+  gobject_class->get_property = gxdp_trash_skeleton_get_property;
15461+  gobject_class->set_property = gxdp_trash_skeleton_set_property;
15462+  gobject_class->notify       = gxdp_trash_skeleton_notify;
15463+
15464+
15465+  gxdp_trash_override_properties (gobject_class, 1);
15466+
15467+  skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass);
15468+  skeleton_class->get_info = gxdp_trash_skeleton_dbus_interface_get_info;
15469+  skeleton_class->get_properties = gxdp_trash_skeleton_dbus_interface_get_properties;
15470+  skeleton_class->flush = gxdp_trash_skeleton_dbus_interface_flush;
15471+  skeleton_class->get_vtable = gxdp_trash_skeleton_dbus_interface_get_vtable;
15472+
15473+#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
15474+  g_type_class_add_private (klass, sizeof (GXdpTrashSkeletonPrivate));
15475+#endif
15476+}
15477+
15478+static void
15479+gxdp_trash_skeleton_iface_init (GXdpTrashIface *iface)
15480+{
15481+  iface->get_version = gxdp_trash_skeleton_get_version;
15482+}
15483+
15484+/**
15485+ * gxdp_trash_skeleton_new:
15486+ *
15487+ * Creates a skeleton object for the D-Bus interface <link linkend="gdbus-interface-org-freedesktop-portal-Trash.top_of_page">org.freedesktop.portal.Trash</link>.
15488+ *
15489+ * Returns: (transfer full) (type GXdpTrashSkeleton): The skeleton object.
15490+ */
15491+GXdpTrash *
15492+gxdp_trash_skeleton_new (void)
15493+{
15494+  return GXDP_TRASH (g_object_new (GXDP_TYPE_TRASH_SKELETON, NULL));
15495+}
15496+
15497diff --git a/gio/xdp-dbus.h b/gio/xdp-dbus.h
15498new file mode 100644
15499index 0000000..6c06210
15500--- /dev/null
15501+++ b/gio/xdp-dbus.h
15502@@ -0,0 +1,1172 @@
15503+/*
15504+ * This file is generated by gdbus-codegen, do not modify it.
15505+ *
15506+ * The license of this code is the same as for the D-Bus interface description
15507+ * it was derived from. Note that it links to GLib, so must comply with the
15508+ * LGPL linking clauses.
15509+ */
15510+
15511+#ifndef __XDP_DBUS_H__
15512+#define __XDP_DBUS_H__
15513+
15514+#include <gio/gio.h>
15515+
15516+G_BEGIN_DECLS
15517+
15518+
15519+/* ------------------------------------------------------------------------ */
15520+/* Declarations for org.freedesktop.portal.Documents */
15521+
15522+#define GXDP_TYPE_DOCUMENTS (gxdp_documents_get_type ())
15523+#define GXDP_DOCUMENTS(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GXDP_TYPE_DOCUMENTS, GXdpDocuments))
15524+#define GXDP_IS_DOCUMENTS(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GXDP_TYPE_DOCUMENTS))
15525+#define GXDP_DOCUMENTS_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), GXDP_TYPE_DOCUMENTS, GXdpDocumentsIface))
15526+
15527+struct _GXdpDocuments;
15528+typedef struct _GXdpDocuments GXdpDocuments;
15529+typedef struct _GXdpDocumentsIface GXdpDocumentsIface;
15530+
15531+struct _GXdpDocumentsIface
15532+{
15533+  GTypeInterface parent_iface;
15534+
15535+
15536+  gboolean (*handle_add) (
15537+    GXdpDocuments *object,
15538+    GDBusMethodInvocation *invocation,
15539+    GUnixFDList *fd_list,
15540+    GVariant *arg_o_path_fd,
15541+    gboolean arg_reuse_existing,
15542+    gboolean arg_persistent);
15543+
15544+  gboolean (*handle_add_full) (
15545+    GXdpDocuments *object,
15546+    GDBusMethodInvocation *invocation,
15547+    GUnixFDList *fd_list,
15548+    GVariant *arg_o_path_fds,
15549+    guint arg_flags,
15550+    const gchar *arg_app_id,
15551+    const gchar *const *arg_permissions);
15552+
15553+  gboolean (*handle_add_named) (
15554+    GXdpDocuments *object,
15555+    GDBusMethodInvocation *invocation,
15556+    GUnixFDList *fd_list,
15557+    GVariant *arg_o_path_parent_fd,
15558+    const gchar *arg_filename,
15559+    gboolean arg_reuse_existing,
15560+    gboolean arg_persistent);
15561+
15562+  gboolean (*handle_add_named_full) (
15563+    GXdpDocuments *object,
15564+    GDBusMethodInvocation *invocation,
15565+    GUnixFDList *fd_list,
15566+    GVariant *arg_o_path_fd,
15567+    const gchar *arg_filename,
15568+    guint arg_flags,
15569+    const gchar *arg_app_id,
15570+    const gchar *const *arg_permissions);
15571+
15572+  gboolean (*handle_delete) (
15573+    GXdpDocuments *object,
15574+    GDBusMethodInvocation *invocation,
15575+    const gchar *arg_doc_id);
15576+
15577+  gboolean (*handle_get_mount_point) (
15578+    GXdpDocuments *object,
15579+    GDBusMethodInvocation *invocation);
15580+
15581+  gboolean (*handle_grant_permissions) (
15582+    GXdpDocuments *object,
15583+    GDBusMethodInvocation *invocation,
15584+    const gchar *arg_doc_id,
15585+    const gchar *arg_app_id,
15586+    const gchar *const *arg_permissions);
15587+
15588+  gboolean (*handle_info) (
15589+    GXdpDocuments *object,
15590+    GDBusMethodInvocation *invocation,
15591+    const gchar *arg_doc_id);
15592+
15593+  gboolean (*handle_list) (
15594+    GXdpDocuments *object,
15595+    GDBusMethodInvocation *invocation,
15596+    const gchar *arg_app_id);
15597+
15598+  gboolean (*handle_lookup) (
15599+    GXdpDocuments *object,
15600+    GDBusMethodInvocation *invocation,
15601+    const gchar *arg_filename);
15602+
15603+  gboolean (*handle_revoke_permissions) (
15604+    GXdpDocuments *object,
15605+    GDBusMethodInvocation *invocation,
15606+    const gchar *arg_doc_id,
15607+    const gchar *arg_app_id,
15608+    const gchar *const *arg_permissions);
15609+
15610+  guint  (*get_version) (GXdpDocuments *object);
15611+
15612+};
15613+
15614+GType gxdp_documents_get_type (void) G_GNUC_CONST;
15615+
15616+GDBusInterfaceInfo *gxdp_documents_interface_info (void);
15617+guint gxdp_documents_override_properties (GObjectClass *klass, guint property_id_begin);
15618+
15619+
15620+/* D-Bus method call completion functions: */
15621+void gxdp_documents_complete_get_mount_point (
15622+    GXdpDocuments *object,
15623+    GDBusMethodInvocation *invocation,
15624+    const gchar *path);
15625+
15626+void gxdp_documents_complete_add (
15627+    GXdpDocuments *object,
15628+    GDBusMethodInvocation *invocation,
15629+    GUnixFDList *fd_list,
15630+    const gchar *doc_id);
15631+
15632+void gxdp_documents_complete_add_named (
15633+    GXdpDocuments *object,
15634+    GDBusMethodInvocation *invocation,
15635+    GUnixFDList *fd_list,
15636+    const gchar *doc_id);
15637+
15638+void gxdp_documents_complete_add_full (
15639+    GXdpDocuments *object,
15640+    GDBusMethodInvocation *invocation,
15641+    GUnixFDList *fd_list,
15642+    const gchar *const *doc_ids,
15643+    GVariant *extra_out);
15644+
15645+void gxdp_documents_complete_add_named_full (
15646+    GXdpDocuments *object,
15647+    GDBusMethodInvocation *invocation,
15648+    GUnixFDList *fd_list,
15649+    const gchar *doc_id,
15650+    GVariant *extra_out);
15651+
15652+void gxdp_documents_complete_grant_permissions (
15653+    GXdpDocuments *object,
15654+    GDBusMethodInvocation *invocation);
15655+
15656+void gxdp_documents_complete_revoke_permissions (
15657+    GXdpDocuments *object,
15658+    GDBusMethodInvocation *invocation);
15659+
15660+void gxdp_documents_complete_delete (
15661+    GXdpDocuments *object,
15662+    GDBusMethodInvocation *invocation);
15663+
15664+void gxdp_documents_complete_lookup (
15665+    GXdpDocuments *object,
15666+    GDBusMethodInvocation *invocation,
15667+    const gchar *doc_id);
15668+
15669+void gxdp_documents_complete_info (
15670+    GXdpDocuments *object,
15671+    GDBusMethodInvocation *invocation,
15672+    const gchar *path,
15673+    GVariant *apps);
15674+
15675+void gxdp_documents_complete_list (
15676+    GXdpDocuments *object,
15677+    GDBusMethodInvocation *invocation,
15678+    GVariant *docs);
15679+
15680+
15681+
15682+/* D-Bus method calls: */
15683+void gxdp_documents_call_get_mount_point (
15684+    GXdpDocuments *proxy,
15685+    GCancellable *cancellable,
15686+    GAsyncReadyCallback callback,
15687+    gpointer user_data);
15688+
15689+gboolean gxdp_documents_call_get_mount_point_finish (
15690+    GXdpDocuments *proxy,
15691+    gchar **out_path,
15692+    GAsyncResult *res,
15693+    GError **error);
15694+
15695+gboolean gxdp_documents_call_get_mount_point_sync (
15696+    GXdpDocuments *proxy,
15697+    gchar **out_path,
15698+    GCancellable *cancellable,
15699+    GError **error);
15700+
15701+void gxdp_documents_call_add (
15702+    GXdpDocuments *proxy,
15703+    GVariant *arg_o_path_fd,
15704+    gboolean arg_reuse_existing,
15705+    gboolean arg_persistent,
15706+    GUnixFDList *fd_list,
15707+    GCancellable *cancellable,
15708+    GAsyncReadyCallback callback,
15709+    gpointer user_data);
15710+
15711+gboolean gxdp_documents_call_add_finish (
15712+    GXdpDocuments *proxy,
15713+    gchar **out_doc_id,
15714+    GUnixFDList **out_fd_list,
15715+    GAsyncResult *res,
15716+    GError **error);
15717+
15718+gboolean gxdp_documents_call_add_sync (
15719+    GXdpDocuments *proxy,
15720+    GVariant *arg_o_path_fd,
15721+    gboolean arg_reuse_existing,
15722+    gboolean arg_persistent,
15723+    GUnixFDList  *fd_list,
15724+    gchar **out_doc_id,
15725+    GUnixFDList **out_fd_list,
15726+    GCancellable *cancellable,
15727+    GError **error);
15728+
15729+void gxdp_documents_call_add_named (
15730+    GXdpDocuments *proxy,
15731+    GVariant *arg_o_path_parent_fd,
15732+    const gchar *arg_filename,
15733+    gboolean arg_reuse_existing,
15734+    gboolean arg_persistent,
15735+    GUnixFDList *fd_list,
15736+    GCancellable *cancellable,
15737+    GAsyncReadyCallback callback,
15738+    gpointer user_data);
15739+
15740+gboolean gxdp_documents_call_add_named_finish (
15741+    GXdpDocuments *proxy,
15742+    gchar **out_doc_id,
15743+    GUnixFDList **out_fd_list,
15744+    GAsyncResult *res,
15745+    GError **error);
15746+
15747+gboolean gxdp_documents_call_add_named_sync (
15748+    GXdpDocuments *proxy,
15749+    GVariant *arg_o_path_parent_fd,
15750+    const gchar *arg_filename,
15751+    gboolean arg_reuse_existing,
15752+    gboolean arg_persistent,
15753+    GUnixFDList  *fd_list,
15754+    gchar **out_doc_id,
15755+    GUnixFDList **out_fd_list,
15756+    GCancellable *cancellable,
15757+    GError **error);
15758+
15759+void gxdp_documents_call_add_full (
15760+    GXdpDocuments *proxy,
15761+    GVariant *arg_o_path_fds,
15762+    guint arg_flags,
15763+    const gchar *arg_app_id,
15764+    const gchar *const *arg_permissions,
15765+    GUnixFDList *fd_list,
15766+    GCancellable *cancellable,
15767+    GAsyncReadyCallback callback,
15768+    gpointer user_data);
15769+
15770+gboolean gxdp_documents_call_add_full_finish (
15771+    GXdpDocuments *proxy,
15772+    gchar ***out_doc_ids,
15773+    GVariant **out_extra_out,
15774+    GUnixFDList **out_fd_list,
15775+    GAsyncResult *res,
15776+    GError **error);
15777+
15778+gboolean gxdp_documents_call_add_full_sync (
15779+    GXdpDocuments *proxy,
15780+    GVariant *arg_o_path_fds,
15781+    guint arg_flags,
15782+    const gchar *arg_app_id,
15783+    const gchar *const *arg_permissions,
15784+    GUnixFDList  *fd_list,
15785+    gchar ***out_doc_ids,
15786+    GVariant **out_extra_out,
15787+    GUnixFDList **out_fd_list,
15788+    GCancellable *cancellable,
15789+    GError **error);
15790+
15791+void gxdp_documents_call_add_named_full (
15792+    GXdpDocuments *proxy,
15793+    GVariant *arg_o_path_fd,
15794+    const gchar *arg_filename,
15795+    guint arg_flags,
15796+    const gchar *arg_app_id,
15797+    const gchar *const *arg_permissions,
15798+    GUnixFDList *fd_list,
15799+    GCancellable *cancellable,
15800+    GAsyncReadyCallback callback,
15801+    gpointer user_data);
15802+
15803+gboolean gxdp_documents_call_add_named_full_finish (
15804+    GXdpDocuments *proxy,
15805+    gchar **out_doc_id,
15806+    GVariant **out_extra_out,
15807+    GUnixFDList **out_fd_list,
15808+    GAsyncResult *res,
15809+    GError **error);
15810+
15811+gboolean gxdp_documents_call_add_named_full_sync (
15812+    GXdpDocuments *proxy,
15813+    GVariant *arg_o_path_fd,
15814+    const gchar *arg_filename,
15815+    guint arg_flags,
15816+    const gchar *arg_app_id,
15817+    const gchar *const *arg_permissions,
15818+    GUnixFDList  *fd_list,
15819+    gchar **out_doc_id,
15820+    GVariant **out_extra_out,
15821+    GUnixFDList **out_fd_list,
15822+    GCancellable *cancellable,
15823+    GError **error);
15824+
15825+void gxdp_documents_call_grant_permissions (
15826+    GXdpDocuments *proxy,
15827+    const gchar *arg_doc_id,
15828+    const gchar *arg_app_id,
15829+    const gchar *const *arg_permissions,
15830+    GCancellable *cancellable,
15831+    GAsyncReadyCallback callback,
15832+    gpointer user_data);
15833+
15834+gboolean gxdp_documents_call_grant_permissions_finish (
15835+    GXdpDocuments *proxy,
15836+    GAsyncResult *res,
15837+    GError **error);
15838+
15839+gboolean gxdp_documents_call_grant_permissions_sync (
15840+    GXdpDocuments *proxy,
15841+    const gchar *arg_doc_id,
15842+    const gchar *arg_app_id,
15843+    const gchar *const *arg_permissions,
15844+    GCancellable *cancellable,
15845+    GError **error);
15846+
15847+void gxdp_documents_call_revoke_permissions (
15848+    GXdpDocuments *proxy,
15849+    const gchar *arg_doc_id,
15850+    const gchar *arg_app_id,
15851+    const gchar *const *arg_permissions,
15852+    GCancellable *cancellable,
15853+    GAsyncReadyCallback callback,
15854+    gpointer user_data);
15855+
15856+gboolean gxdp_documents_call_revoke_permissions_finish (
15857+    GXdpDocuments *proxy,
15858+    GAsyncResult *res,
15859+    GError **error);
15860+
15861+gboolean gxdp_documents_call_revoke_permissions_sync (
15862+    GXdpDocuments *proxy,
15863+    const gchar *arg_doc_id,
15864+    const gchar *arg_app_id,
15865+    const gchar *const *arg_permissions,
15866+    GCancellable *cancellable,
15867+    GError **error);
15868+
15869+void gxdp_documents_call_delete (
15870+    GXdpDocuments *proxy,
15871+    const gchar *arg_doc_id,
15872+    GCancellable *cancellable,
15873+    GAsyncReadyCallback callback,
15874+    gpointer user_data);
15875+
15876+gboolean gxdp_documents_call_delete_finish (
15877+    GXdpDocuments *proxy,
15878+    GAsyncResult *res,
15879+    GError **error);
15880+
15881+gboolean gxdp_documents_call_delete_sync (
15882+    GXdpDocuments *proxy,
15883+    const gchar *arg_doc_id,
15884+    GCancellable *cancellable,
15885+    GError **error);
15886+
15887+void gxdp_documents_call_lookup (
15888+    GXdpDocuments *proxy,
15889+    const gchar *arg_filename,
15890+    GCancellable *cancellable,
15891+    GAsyncReadyCallback callback,
15892+    gpointer user_data);
15893+
15894+gboolean gxdp_documents_call_lookup_finish (
15895+    GXdpDocuments *proxy,
15896+    gchar **out_doc_id,
15897+    GAsyncResult *res,
15898+    GError **error);
15899+
15900+gboolean gxdp_documents_call_lookup_sync (
15901+    GXdpDocuments *proxy,
15902+    const gchar *arg_filename,
15903+    gchar **out_doc_id,
15904+    GCancellable *cancellable,
15905+    GError **error);
15906+
15907+void gxdp_documents_call_info (
15908+    GXdpDocuments *proxy,
15909+    const gchar *arg_doc_id,
15910+    GCancellable *cancellable,
15911+    GAsyncReadyCallback callback,
15912+    gpointer user_data);
15913+
15914+gboolean gxdp_documents_call_info_finish (
15915+    GXdpDocuments *proxy,
15916+    gchar **out_path,
15917+    GVariant **out_apps,
15918+    GAsyncResult *res,
15919+    GError **error);
15920+
15921+gboolean gxdp_documents_call_info_sync (
15922+    GXdpDocuments *proxy,
15923+    const gchar *arg_doc_id,
15924+    gchar **out_path,
15925+    GVariant **out_apps,
15926+    GCancellable *cancellable,
15927+    GError **error);
15928+
15929+void gxdp_documents_call_list (
15930+    GXdpDocuments *proxy,
15931+    const gchar *arg_app_id,
15932+    GCancellable *cancellable,
15933+    GAsyncReadyCallback callback,
15934+    gpointer user_data);
15935+
15936+gboolean gxdp_documents_call_list_finish (
15937+    GXdpDocuments *proxy,
15938+    GVariant **out_docs,
15939+    GAsyncResult *res,
15940+    GError **error);
15941+
15942+gboolean gxdp_documents_call_list_sync (
15943+    GXdpDocuments *proxy,
15944+    const gchar *arg_app_id,
15945+    GVariant **out_docs,
15946+    GCancellable *cancellable,
15947+    GError **error);
15948+
15949+
15950+
15951+/* D-Bus property accessors: */
15952+guint gxdp_documents_get_version (GXdpDocuments *object);
15953+void gxdp_documents_set_version (GXdpDocuments *object, guint value);
15954+
15955+
15956+/* ---- */
15957+
15958+#define GXDP_TYPE_DOCUMENTS_PROXY (gxdp_documents_proxy_get_type ())
15959+#define GXDP_DOCUMENTS_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GXDP_TYPE_DOCUMENTS_PROXY, GXdpDocumentsProxy))
15960+#define GXDP_DOCUMENTS_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), GXDP_TYPE_DOCUMENTS_PROXY, GXdpDocumentsProxyClass))
15961+#define GXDP_DOCUMENTS_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GXDP_TYPE_DOCUMENTS_PROXY, GXdpDocumentsProxyClass))
15962+#define GXDP_IS_DOCUMENTS_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GXDP_TYPE_DOCUMENTS_PROXY))
15963+#define GXDP_IS_DOCUMENTS_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GXDP_TYPE_DOCUMENTS_PROXY))
15964+
15965+typedef struct _GXdpDocumentsProxy GXdpDocumentsProxy;
15966+typedef struct _GXdpDocumentsProxyClass GXdpDocumentsProxyClass;
15967+typedef struct _GXdpDocumentsProxyPrivate GXdpDocumentsProxyPrivate;
15968+
15969+struct _GXdpDocumentsProxy
15970+{
15971+  /*< private >*/
15972+  GDBusProxy parent_instance;
15973+  GXdpDocumentsProxyPrivate *priv;
15974+};
15975+
15976+struct _GXdpDocumentsProxyClass
15977+{
15978+  GDBusProxyClass parent_class;
15979+};
15980+
15981+GType gxdp_documents_proxy_get_type (void) G_GNUC_CONST;
15982+
15983+#if GLIB_CHECK_VERSION(2, 44, 0)
15984+G_DEFINE_AUTOPTR_CLEANUP_FUNC (GXdpDocumentsProxy, g_object_unref)
15985+#endif
15986+
15987+void gxdp_documents_proxy_new (
15988+    GDBusConnection     *connection,
15989+    GDBusProxyFlags      flags,
15990+    const gchar         *name,
15991+    const gchar         *object_path,
15992+    GCancellable        *cancellable,
15993+    GAsyncReadyCallback  callback,
15994+    gpointer             user_data);
15995+GXdpDocuments *gxdp_documents_proxy_new_finish (
15996+    GAsyncResult        *res,
15997+    GError             **error);
15998+GXdpDocuments *gxdp_documents_proxy_new_sync (
15999+    GDBusConnection     *connection,
16000+    GDBusProxyFlags      flags,
16001+    const gchar         *name,
16002+    const gchar         *object_path,
16003+    GCancellable        *cancellable,
16004+    GError             **error);
16005+
16006+void gxdp_documents_proxy_new_for_bus (
16007+    GBusType             bus_type,
16008+    GDBusProxyFlags      flags,
16009+    const gchar         *name,
16010+    const gchar         *object_path,
16011+    GCancellable        *cancellable,
16012+    GAsyncReadyCallback  callback,
16013+    gpointer             user_data);
16014+GXdpDocuments *gxdp_documents_proxy_new_for_bus_finish (
16015+    GAsyncResult        *res,
16016+    GError             **error);
16017+GXdpDocuments *gxdp_documents_proxy_new_for_bus_sync (
16018+    GBusType             bus_type,
16019+    GDBusProxyFlags      flags,
16020+    const gchar         *name,
16021+    const gchar         *object_path,
16022+    GCancellable        *cancellable,
16023+    GError             **error);
16024+
16025+
16026+/* ---- */
16027+
16028+#define GXDP_TYPE_DOCUMENTS_SKELETON (gxdp_documents_skeleton_get_type ())
16029+#define GXDP_DOCUMENTS_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GXDP_TYPE_DOCUMENTS_SKELETON, GXdpDocumentsSkeleton))
16030+#define GXDP_DOCUMENTS_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), GXDP_TYPE_DOCUMENTS_SKELETON, GXdpDocumentsSkeletonClass))
16031+#define GXDP_DOCUMENTS_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GXDP_TYPE_DOCUMENTS_SKELETON, GXdpDocumentsSkeletonClass))
16032+#define GXDP_IS_DOCUMENTS_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GXDP_TYPE_DOCUMENTS_SKELETON))
16033+#define GXDP_IS_DOCUMENTS_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GXDP_TYPE_DOCUMENTS_SKELETON))
16034+
16035+typedef struct _GXdpDocumentsSkeleton GXdpDocumentsSkeleton;
16036+typedef struct _GXdpDocumentsSkeletonClass GXdpDocumentsSkeletonClass;
16037+typedef struct _GXdpDocumentsSkeletonPrivate GXdpDocumentsSkeletonPrivate;
16038+
16039+struct _GXdpDocumentsSkeleton
16040+{
16041+  /*< private >*/
16042+  GDBusInterfaceSkeleton parent_instance;
16043+  GXdpDocumentsSkeletonPrivate *priv;
16044+};
16045+
16046+struct _GXdpDocumentsSkeletonClass
16047+{
16048+  GDBusInterfaceSkeletonClass parent_class;
16049+};
16050+
16051+GType gxdp_documents_skeleton_get_type (void) G_GNUC_CONST;
16052+
16053+#if GLIB_CHECK_VERSION(2, 44, 0)
16054+G_DEFINE_AUTOPTR_CLEANUP_FUNC (GXdpDocumentsSkeleton, g_object_unref)
16055+#endif
16056+
16057+GXdpDocuments *gxdp_documents_skeleton_new (void);
16058+
16059+
16060+/* ------------------------------------------------------------------------ */
16061+/* Declarations for org.freedesktop.portal.OpenURI */
16062+
16063+#define GXDP_TYPE_OPEN_URI (gxdp_open_uri_get_type ())
16064+#define GXDP_OPEN_URI(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GXDP_TYPE_OPEN_URI, GXdpOpenURI))
16065+#define GXDP_IS_OPEN_URI(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GXDP_TYPE_OPEN_URI))
16066+#define GXDP_OPEN_URI_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), GXDP_TYPE_OPEN_URI, GXdpOpenURIIface))
16067+
16068+struct _GXdpOpenURI;
16069+typedef struct _GXdpOpenURI GXdpOpenURI;
16070+typedef struct _GXdpOpenURIIface GXdpOpenURIIface;
16071+
16072+struct _GXdpOpenURIIface
16073+{
16074+  GTypeInterface parent_iface;
16075+
16076+
16077+  gboolean (*handle_open_directory) (
16078+    GXdpOpenURI *object,
16079+    GDBusMethodInvocation *invocation,
16080+    GUnixFDList *fd_list,
16081+    const gchar *arg_parent_window,
16082+    GVariant *arg_fd,
16083+    GVariant *arg_options);
16084+
16085+  gboolean (*handle_open_file) (
16086+    GXdpOpenURI *object,
16087+    GDBusMethodInvocation *invocation,
16088+    GUnixFDList *fd_list,
16089+    const gchar *arg_parent_window,
16090+    GVariant *arg_fd,
16091+    GVariant *arg_options);
16092+
16093+  gboolean (*handle_open_uri) (
16094+    GXdpOpenURI *object,
16095+    GDBusMethodInvocation *invocation,
16096+    const gchar *arg_parent_window,
16097+    const gchar *arg_uri,
16098+    GVariant *arg_options);
16099+
16100+  guint  (*get_version) (GXdpOpenURI *object);
16101+
16102+};
16103+
16104+GType gxdp_open_uri_get_type (void) G_GNUC_CONST;
16105+
16106+GDBusInterfaceInfo *gxdp_open_uri_interface_info (void);
16107+guint gxdp_open_uri_override_properties (GObjectClass *klass, guint property_id_begin);
16108+
16109+
16110+/* D-Bus method call completion functions: */
16111+void gxdp_open_uri_complete_open_uri (
16112+    GXdpOpenURI *object,
16113+    GDBusMethodInvocation *invocation,
16114+    const gchar *handle);
16115+
16116+void gxdp_open_uri_complete_open_file (
16117+    GXdpOpenURI *object,
16118+    GDBusMethodInvocation *invocation,
16119+    GUnixFDList *fd_list,
16120+    const gchar *handle);
16121+
16122+void gxdp_open_uri_complete_open_directory (
16123+    GXdpOpenURI *object,
16124+    GDBusMethodInvocation *invocation,
16125+    GUnixFDList *fd_list,
16126+    const gchar *handle);
16127+
16128+
16129+
16130+/* D-Bus method calls: */
16131+void gxdp_open_uri_call_open_uri (
16132+    GXdpOpenURI *proxy,
16133+    const gchar *arg_parent_window,
16134+    const gchar *arg_uri,
16135+    GVariant *arg_options,
16136+    GCancellable *cancellable,
16137+    GAsyncReadyCallback callback,
16138+    gpointer user_data);
16139+
16140+gboolean gxdp_open_uri_call_open_uri_finish (
16141+    GXdpOpenURI *proxy,
16142+    gchar **out_handle,
16143+    GAsyncResult *res,
16144+    GError **error);
16145+
16146+gboolean gxdp_open_uri_call_open_uri_sync (
16147+    GXdpOpenURI *proxy,
16148+    const gchar *arg_parent_window,
16149+    const gchar *arg_uri,
16150+    GVariant *arg_options,
16151+    gchar **out_handle,
16152+    GCancellable *cancellable,
16153+    GError **error);
16154+
16155+void gxdp_open_uri_call_open_file (
16156+    GXdpOpenURI *proxy,
16157+    const gchar *arg_parent_window,
16158+    GVariant *arg_fd,
16159+    GVariant *arg_options,
16160+    GUnixFDList *fd_list,
16161+    GCancellable *cancellable,
16162+    GAsyncReadyCallback callback,
16163+    gpointer user_data);
16164+
16165+gboolean gxdp_open_uri_call_open_file_finish (
16166+    GXdpOpenURI *proxy,
16167+    gchar **out_handle,
16168+    GUnixFDList **out_fd_list,
16169+    GAsyncResult *res,
16170+    GError **error);
16171+
16172+gboolean gxdp_open_uri_call_open_file_sync (
16173+    GXdpOpenURI *proxy,
16174+    const gchar *arg_parent_window,
16175+    GVariant *arg_fd,
16176+    GVariant *arg_options,
16177+    GUnixFDList  *fd_list,
16178+    gchar **out_handle,
16179+    GUnixFDList **out_fd_list,
16180+    GCancellable *cancellable,
16181+    GError **error);
16182+
16183+void gxdp_open_uri_call_open_directory (
16184+    GXdpOpenURI *proxy,
16185+    const gchar *arg_parent_window,
16186+    GVariant *arg_fd,
16187+    GVariant *arg_options,
16188+    GUnixFDList *fd_list,
16189+    GCancellable *cancellable,
16190+    GAsyncReadyCallback callback,
16191+    gpointer user_data);
16192+
16193+gboolean gxdp_open_uri_call_open_directory_finish (
16194+    GXdpOpenURI *proxy,
16195+    gchar **out_handle,
16196+    GUnixFDList **out_fd_list,
16197+    GAsyncResult *res,
16198+    GError **error);
16199+
16200+gboolean gxdp_open_uri_call_open_directory_sync (
16201+    GXdpOpenURI *proxy,
16202+    const gchar *arg_parent_window,
16203+    GVariant *arg_fd,
16204+    GVariant *arg_options,
16205+    GUnixFDList  *fd_list,
16206+    gchar **out_handle,
16207+    GUnixFDList **out_fd_list,
16208+    GCancellable *cancellable,
16209+    GError **error);
16210+
16211+
16212+
16213+/* D-Bus property accessors: */
16214+guint gxdp_open_uri_get_version (GXdpOpenURI *object);
16215+void gxdp_open_uri_set_version (GXdpOpenURI *object, guint value);
16216+
16217+
16218+/* ---- */
16219+
16220+#define GXDP_TYPE_OPEN_URI_PROXY (gxdp_open_uri_proxy_get_type ())
16221+#define GXDP_OPEN_URI_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GXDP_TYPE_OPEN_URI_PROXY, GXdpOpenURIProxy))
16222+#define GXDP_OPEN_URI_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), GXDP_TYPE_OPEN_URI_PROXY, GXdpOpenURIProxyClass))
16223+#define GXDP_OPEN_URI_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GXDP_TYPE_OPEN_URI_PROXY, GXdpOpenURIProxyClass))
16224+#define GXDP_IS_OPEN_URI_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GXDP_TYPE_OPEN_URI_PROXY))
16225+#define GXDP_IS_OPEN_URI_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GXDP_TYPE_OPEN_URI_PROXY))
16226+
16227+typedef struct _GXdpOpenURIProxy GXdpOpenURIProxy;
16228+typedef struct _GXdpOpenURIProxyClass GXdpOpenURIProxyClass;
16229+typedef struct _GXdpOpenURIProxyPrivate GXdpOpenURIProxyPrivate;
16230+
16231+struct _GXdpOpenURIProxy
16232+{
16233+  /*< private >*/
16234+  GDBusProxy parent_instance;
16235+  GXdpOpenURIProxyPrivate *priv;
16236+};
16237+
16238+struct _GXdpOpenURIProxyClass
16239+{
16240+  GDBusProxyClass parent_class;
16241+};
16242+
16243+GType gxdp_open_uri_proxy_get_type (void) G_GNUC_CONST;
16244+
16245+#if GLIB_CHECK_VERSION(2, 44, 0)
16246+G_DEFINE_AUTOPTR_CLEANUP_FUNC (GXdpOpenURIProxy, g_object_unref)
16247+#endif
16248+
16249+void gxdp_open_uri_proxy_new (
16250+    GDBusConnection     *connection,
16251+    GDBusProxyFlags      flags,
16252+    const gchar         *name,
16253+    const gchar         *object_path,
16254+    GCancellable        *cancellable,
16255+    GAsyncReadyCallback  callback,
16256+    gpointer             user_data);
16257+GXdpOpenURI *gxdp_open_uri_proxy_new_finish (
16258+    GAsyncResult        *res,
16259+    GError             **error);
16260+GXdpOpenURI *gxdp_open_uri_proxy_new_sync (
16261+    GDBusConnection     *connection,
16262+    GDBusProxyFlags      flags,
16263+    const gchar         *name,
16264+    const gchar         *object_path,
16265+    GCancellable        *cancellable,
16266+    GError             **error);
16267+
16268+void gxdp_open_uri_proxy_new_for_bus (
16269+    GBusType             bus_type,
16270+    GDBusProxyFlags      flags,
16271+    const gchar         *name,
16272+    const gchar         *object_path,
16273+    GCancellable        *cancellable,
16274+    GAsyncReadyCallback  callback,
16275+    gpointer             user_data);
16276+GXdpOpenURI *gxdp_open_uri_proxy_new_for_bus_finish (
16277+    GAsyncResult        *res,
16278+    GError             **error);
16279+GXdpOpenURI *gxdp_open_uri_proxy_new_for_bus_sync (
16280+    GBusType             bus_type,
16281+    GDBusProxyFlags      flags,
16282+    const gchar         *name,
16283+    const gchar         *object_path,
16284+    GCancellable        *cancellable,
16285+    GError             **error);
16286+
16287+
16288+/* ---- */
16289+
16290+#define GXDP_TYPE_OPEN_URI_SKELETON (gxdp_open_uri_skeleton_get_type ())
16291+#define GXDP_OPEN_URI_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GXDP_TYPE_OPEN_URI_SKELETON, GXdpOpenURISkeleton))
16292+#define GXDP_OPEN_URI_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), GXDP_TYPE_OPEN_URI_SKELETON, GXdpOpenURISkeletonClass))
16293+#define GXDP_OPEN_URI_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GXDP_TYPE_OPEN_URI_SKELETON, GXdpOpenURISkeletonClass))
16294+#define GXDP_IS_OPEN_URI_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GXDP_TYPE_OPEN_URI_SKELETON))
16295+#define GXDP_IS_OPEN_URI_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GXDP_TYPE_OPEN_URI_SKELETON))
16296+
16297+typedef struct _GXdpOpenURISkeleton GXdpOpenURISkeleton;
16298+typedef struct _GXdpOpenURISkeletonClass GXdpOpenURISkeletonClass;
16299+typedef struct _GXdpOpenURISkeletonPrivate GXdpOpenURISkeletonPrivate;
16300+
16301+struct _GXdpOpenURISkeleton
16302+{
16303+  /*< private >*/
16304+  GDBusInterfaceSkeleton parent_instance;
16305+  GXdpOpenURISkeletonPrivate *priv;
16306+};
16307+
16308+struct _GXdpOpenURISkeletonClass
16309+{
16310+  GDBusInterfaceSkeletonClass parent_class;
16311+};
16312+
16313+GType gxdp_open_uri_skeleton_get_type (void) G_GNUC_CONST;
16314+
16315+#if GLIB_CHECK_VERSION(2, 44, 0)
16316+G_DEFINE_AUTOPTR_CLEANUP_FUNC (GXdpOpenURISkeleton, g_object_unref)
16317+#endif
16318+
16319+GXdpOpenURI *gxdp_open_uri_skeleton_new (void);
16320+
16321+
16322+/* ------------------------------------------------------------------------ */
16323+/* Declarations for org.freedesktop.portal.ProxyResolver */
16324+
16325+#define GXDP_TYPE_PROXY_RESOLVER (gxdp_proxy_resolver_get_type ())
16326+#define GXDP_PROXY_RESOLVER(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GXDP_TYPE_PROXY_RESOLVER, GXdpProxyResolver))
16327+#define GXDP_IS_PROXY_RESOLVER(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GXDP_TYPE_PROXY_RESOLVER))
16328+#define GXDP_PROXY_RESOLVER_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), GXDP_TYPE_PROXY_RESOLVER, GXdpProxyResolverIface))
16329+
16330+struct _GXdpProxyResolver;
16331+typedef struct _GXdpProxyResolver GXdpProxyResolver;
16332+typedef struct _GXdpProxyResolverIface GXdpProxyResolverIface;
16333+
16334+struct _GXdpProxyResolverIface
16335+{
16336+  GTypeInterface parent_iface;
16337+
16338+
16339+  gboolean (*handle_lookup) (
16340+    GXdpProxyResolver *object,
16341+    GDBusMethodInvocation *invocation,
16342+    const gchar *arg_uri);
16343+
16344+  guint  (*get_version) (GXdpProxyResolver *object);
16345+
16346+};
16347+
16348+GType gxdp_proxy_resolver_get_type (void) G_GNUC_CONST;
16349+
16350+GDBusInterfaceInfo *gxdp_proxy_resolver_interface_info (void);
16351+guint gxdp_proxy_resolver_override_properties (GObjectClass *klass, guint property_id_begin);
16352+
16353+
16354+/* D-Bus method call completion functions: */
16355+void gxdp_proxy_resolver_complete_lookup (
16356+    GXdpProxyResolver *object,
16357+    GDBusMethodInvocation *invocation,
16358+    const gchar *const *proxies);
16359+
16360+
16361+
16362+/* D-Bus method calls: */
16363+void gxdp_proxy_resolver_call_lookup (
16364+    GXdpProxyResolver *proxy,
16365+    const gchar *arg_uri,
16366+    GCancellable *cancellable,
16367+    GAsyncReadyCallback callback,
16368+    gpointer user_data);
16369+
16370+gboolean gxdp_proxy_resolver_call_lookup_finish (
16371+    GXdpProxyResolver *proxy,
16372+    gchar ***out_proxies,
16373+    GAsyncResult *res,
16374+    GError **error);
16375+
16376+gboolean gxdp_proxy_resolver_call_lookup_sync (
16377+    GXdpProxyResolver *proxy,
16378+    const gchar *arg_uri,
16379+    gchar ***out_proxies,
16380+    GCancellable *cancellable,
16381+    GError **error);
16382+
16383+
16384+
16385+/* D-Bus property accessors: */
16386+guint gxdp_proxy_resolver_get_version (GXdpProxyResolver *object);
16387+void gxdp_proxy_resolver_set_version (GXdpProxyResolver *object, guint value);
16388+
16389+
16390+/* ---- */
16391+
16392+#define GXDP_TYPE_PROXY_RESOLVER_PROXY (gxdp_proxy_resolver_proxy_get_type ())
16393+#define GXDP_PROXY_RESOLVER_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GXDP_TYPE_PROXY_RESOLVER_PROXY, GXdpProxyResolverProxy))
16394+#define GXDP_PROXY_RESOLVER_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), GXDP_TYPE_PROXY_RESOLVER_PROXY, GXdpProxyResolverProxyClass))
16395+#define GXDP_PROXY_RESOLVER_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GXDP_TYPE_PROXY_RESOLVER_PROXY, GXdpProxyResolverProxyClass))
16396+#define GXDP_IS_PROXY_RESOLVER_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GXDP_TYPE_PROXY_RESOLVER_PROXY))
16397+#define GXDP_IS_PROXY_RESOLVER_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GXDP_TYPE_PROXY_RESOLVER_PROXY))
16398+
16399+typedef struct _GXdpProxyResolverProxy GXdpProxyResolverProxy;
16400+typedef struct _GXdpProxyResolverProxyClass GXdpProxyResolverProxyClass;
16401+typedef struct _GXdpProxyResolverProxyPrivate GXdpProxyResolverProxyPrivate;
16402+
16403+struct _GXdpProxyResolverProxy
16404+{
16405+  /*< private >*/
16406+  GDBusProxy parent_instance;
16407+  GXdpProxyResolverProxyPrivate *priv;
16408+};
16409+
16410+struct _GXdpProxyResolverProxyClass
16411+{
16412+  GDBusProxyClass parent_class;
16413+};
16414+
16415+GType gxdp_proxy_resolver_proxy_get_type (void) G_GNUC_CONST;
16416+
16417+#if GLIB_CHECK_VERSION(2, 44, 0)
16418+G_DEFINE_AUTOPTR_CLEANUP_FUNC (GXdpProxyResolverProxy, g_object_unref)
16419+#endif
16420+
16421+void gxdp_proxy_resolver_proxy_new (
16422+    GDBusConnection     *connection,
16423+    GDBusProxyFlags      flags,
16424+    const gchar         *name,
16425+    const gchar         *object_path,
16426+    GCancellable        *cancellable,
16427+    GAsyncReadyCallback  callback,
16428+    gpointer             user_data);
16429+GXdpProxyResolver *gxdp_proxy_resolver_proxy_new_finish (
16430+    GAsyncResult        *res,
16431+    GError             **error);
16432+GXdpProxyResolver *gxdp_proxy_resolver_proxy_new_sync (
16433+    GDBusConnection     *connection,
16434+    GDBusProxyFlags      flags,
16435+    const gchar         *name,
16436+    const gchar         *object_path,
16437+    GCancellable        *cancellable,
16438+    GError             **error);
16439+
16440+void gxdp_proxy_resolver_proxy_new_for_bus (
16441+    GBusType             bus_type,
16442+    GDBusProxyFlags      flags,
16443+    const gchar         *name,
16444+    const gchar         *object_path,
16445+    GCancellable        *cancellable,
16446+    GAsyncReadyCallback  callback,
16447+    gpointer             user_data);
16448+GXdpProxyResolver *gxdp_proxy_resolver_proxy_new_for_bus_finish (
16449+    GAsyncResult        *res,
16450+    GError             **error);
16451+GXdpProxyResolver *gxdp_proxy_resolver_proxy_new_for_bus_sync (
16452+    GBusType             bus_type,
16453+    GDBusProxyFlags      flags,
16454+    const gchar         *name,
16455+    const gchar         *object_path,
16456+    GCancellable        *cancellable,
16457+    GError             **error);
16458+
16459+
16460+/* ---- */
16461+
16462+#define GXDP_TYPE_PROXY_RESOLVER_SKELETON (gxdp_proxy_resolver_skeleton_get_type ())
16463+#define GXDP_PROXY_RESOLVER_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GXDP_TYPE_PROXY_RESOLVER_SKELETON, GXdpProxyResolverSkeleton))
16464+#define GXDP_PROXY_RESOLVER_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), GXDP_TYPE_PROXY_RESOLVER_SKELETON, GXdpProxyResolverSkeletonClass))
16465+#define GXDP_PROXY_RESOLVER_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GXDP_TYPE_PROXY_RESOLVER_SKELETON, GXdpProxyResolverSkeletonClass))
16466+#define GXDP_IS_PROXY_RESOLVER_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GXDP_TYPE_PROXY_RESOLVER_SKELETON))
16467+#define GXDP_IS_PROXY_RESOLVER_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GXDP_TYPE_PROXY_RESOLVER_SKELETON))
16468+
16469+typedef struct _GXdpProxyResolverSkeleton GXdpProxyResolverSkeleton;
16470+typedef struct _GXdpProxyResolverSkeletonClass GXdpProxyResolverSkeletonClass;
16471+typedef struct _GXdpProxyResolverSkeletonPrivate GXdpProxyResolverSkeletonPrivate;
16472+
16473+struct _GXdpProxyResolverSkeleton
16474+{
16475+  /*< private >*/
16476+  GDBusInterfaceSkeleton parent_instance;
16477+  GXdpProxyResolverSkeletonPrivate *priv;
16478+};
16479+
16480+struct _GXdpProxyResolverSkeletonClass
16481+{
16482+  GDBusInterfaceSkeletonClass parent_class;
16483+};
16484+
16485+GType gxdp_proxy_resolver_skeleton_get_type (void) G_GNUC_CONST;
16486+
16487+#if GLIB_CHECK_VERSION(2, 44, 0)
16488+G_DEFINE_AUTOPTR_CLEANUP_FUNC (GXdpProxyResolverSkeleton, g_object_unref)
16489+#endif
16490+
16491+GXdpProxyResolver *gxdp_proxy_resolver_skeleton_new (void);
16492+
16493+
16494+/* ------------------------------------------------------------------------ */
16495+/* Declarations for org.freedesktop.portal.Trash */
16496+
16497+#define GXDP_TYPE_TRASH (gxdp_trash_get_type ())
16498+#define GXDP_TRASH(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GXDP_TYPE_TRASH, GXdpTrash))
16499+#define GXDP_IS_TRASH(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GXDP_TYPE_TRASH))
16500+#define GXDP_TRASH_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), GXDP_TYPE_TRASH, GXdpTrashIface))
16501+
16502+struct _GXdpTrash;
16503+typedef struct _GXdpTrash GXdpTrash;
16504+typedef struct _GXdpTrashIface GXdpTrashIface;
16505+
16506+struct _GXdpTrashIface
16507+{
16508+  GTypeInterface parent_iface;
16509+
16510+
16511+  gboolean (*handle_trash_file) (
16512+    GXdpTrash *object,
16513+    GDBusMethodInvocation *invocation,
16514+    GUnixFDList *fd_list,
16515+    GVariant *arg_fd);
16516+
16517+  guint  (*get_version) (GXdpTrash *object);
16518+
16519+};
16520+
16521+GType gxdp_trash_get_type (void) G_GNUC_CONST;
16522+
16523+GDBusInterfaceInfo *gxdp_trash_interface_info (void);
16524+guint gxdp_trash_override_properties (GObjectClass *klass, guint property_id_begin);
16525+
16526+
16527+/* D-Bus method call completion functions: */
16528+void gxdp_trash_complete_trash_file (
16529+    GXdpTrash *object,
16530+    GDBusMethodInvocation *invocation,
16531+    GUnixFDList *fd_list,
16532+    guint result);
16533+
16534+
16535+
16536+/* D-Bus method calls: */
16537+void gxdp_trash_call_trash_file (
16538+    GXdpTrash *proxy,
16539+    GVariant *arg_fd,
16540+    GUnixFDList *fd_list,
16541+    GCancellable *cancellable,
16542+    GAsyncReadyCallback callback,
16543+    gpointer user_data);
16544+
16545+gboolean gxdp_trash_call_trash_file_finish (
16546+    GXdpTrash *proxy,
16547+    guint *out_result,
16548+    GUnixFDList **out_fd_list,
16549+    GAsyncResult *res,
16550+    GError **error);
16551+
16552+gboolean gxdp_trash_call_trash_file_sync (
16553+    GXdpTrash *proxy,
16554+    GVariant *arg_fd,
16555+    GUnixFDList  *fd_list,
16556+    guint *out_result,
16557+    GUnixFDList **out_fd_list,
16558+    GCancellable *cancellable,
16559+    GError **error);
16560+
16561+
16562+
16563+/* D-Bus property accessors: */
16564+guint gxdp_trash_get_version (GXdpTrash *object);
16565+void gxdp_trash_set_version (GXdpTrash *object, guint value);
16566+
16567+
16568+/* ---- */
16569+
16570+#define GXDP_TYPE_TRASH_PROXY (gxdp_trash_proxy_get_type ())
16571+#define GXDP_TRASH_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GXDP_TYPE_TRASH_PROXY, GXdpTrashProxy))
16572+#define GXDP_TRASH_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), GXDP_TYPE_TRASH_PROXY, GXdpTrashProxyClass))
16573+#define GXDP_TRASH_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GXDP_TYPE_TRASH_PROXY, GXdpTrashProxyClass))
16574+#define GXDP_IS_TRASH_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GXDP_TYPE_TRASH_PROXY))
16575+#define GXDP_IS_TRASH_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GXDP_TYPE_TRASH_PROXY))
16576+
16577+typedef struct _GXdpTrashProxy GXdpTrashProxy;
16578+typedef struct _GXdpTrashProxyClass GXdpTrashProxyClass;
16579+typedef struct _GXdpTrashProxyPrivate GXdpTrashProxyPrivate;
16580+
16581+struct _GXdpTrashProxy
16582+{
16583+  /*< private >*/
16584+  GDBusProxy parent_instance;
16585+  GXdpTrashProxyPrivate *priv;
16586+};
16587+
16588+struct _GXdpTrashProxyClass
16589+{
16590+  GDBusProxyClass parent_class;
16591+};
16592+
16593+GType gxdp_trash_proxy_get_type (void) G_GNUC_CONST;
16594+
16595+#if GLIB_CHECK_VERSION(2, 44, 0)
16596+G_DEFINE_AUTOPTR_CLEANUP_FUNC (GXdpTrashProxy, g_object_unref)
16597+#endif
16598+
16599+void gxdp_trash_proxy_new (
16600+    GDBusConnection     *connection,
16601+    GDBusProxyFlags      flags,
16602+    const gchar         *name,
16603+    const gchar         *object_path,
16604+    GCancellable        *cancellable,
16605+    GAsyncReadyCallback  callback,
16606+    gpointer             user_data);
16607+GXdpTrash *gxdp_trash_proxy_new_finish (
16608+    GAsyncResult        *res,
16609+    GError             **error);
16610+GXdpTrash *gxdp_trash_proxy_new_sync (
16611+    GDBusConnection     *connection,
16612+    GDBusProxyFlags      flags,
16613+    const gchar         *name,
16614+    const gchar         *object_path,
16615+    GCancellable        *cancellable,
16616+    GError             **error);
16617+
16618+void gxdp_trash_proxy_new_for_bus (
16619+    GBusType             bus_type,
16620+    GDBusProxyFlags      flags,
16621+    const gchar         *name,
16622+    const gchar         *object_path,
16623+    GCancellable        *cancellable,
16624+    GAsyncReadyCallback  callback,
16625+    gpointer             user_data);
16626+GXdpTrash *gxdp_trash_proxy_new_for_bus_finish (
16627+    GAsyncResult        *res,
16628+    GError             **error);
16629+GXdpTrash *gxdp_trash_proxy_new_for_bus_sync (
16630+    GBusType             bus_type,
16631+    GDBusProxyFlags      flags,
16632+    const gchar         *name,
16633+    const gchar         *object_path,
16634+    GCancellable        *cancellable,
16635+    GError             **error);
16636+
16637+
16638+/* ---- */
16639+
16640+#define GXDP_TYPE_TRASH_SKELETON (gxdp_trash_skeleton_get_type ())
16641+#define GXDP_TRASH_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GXDP_TYPE_TRASH_SKELETON, GXdpTrashSkeleton))
16642+#define GXDP_TRASH_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), GXDP_TYPE_TRASH_SKELETON, GXdpTrashSkeletonClass))
16643+#define GXDP_TRASH_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GXDP_TYPE_TRASH_SKELETON, GXdpTrashSkeletonClass))
16644+#define GXDP_IS_TRASH_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GXDP_TYPE_TRASH_SKELETON))
16645+#define GXDP_IS_TRASH_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GXDP_TYPE_TRASH_SKELETON))
16646+
16647+typedef struct _GXdpTrashSkeleton GXdpTrashSkeleton;
16648+typedef struct _GXdpTrashSkeletonClass GXdpTrashSkeletonClass;
16649+typedef struct _GXdpTrashSkeletonPrivate GXdpTrashSkeletonPrivate;
16650+
16651+struct _GXdpTrashSkeleton
16652+{
16653+  /*< private >*/
16654+  GDBusInterfaceSkeleton parent_instance;
16655+  GXdpTrashSkeletonPrivate *priv;
16656+};
16657+
16658+struct _GXdpTrashSkeletonClass
16659+{
16660+  GDBusInterfaceSkeletonClass parent_class;
16661+};
16662+
16663+GType gxdp_trash_skeleton_get_type (void) G_GNUC_CONST;
16664+
16665+#if GLIB_CHECK_VERSION(2, 44, 0)
16666+G_DEFINE_AUTOPTR_CLEANUP_FUNC (GXdpTrashSkeleton, g_object_unref)
16667+#endif
16668+
16669+GXdpTrash *gxdp_trash_skeleton_new (void);
16670+
16671+
16672+G_END_DECLS
16673+
16674+#endif /* __XDP_DBUS_H__ */
16675diff --git a/glib/gatomic.h b/glib/gatomic.h
16676index 8b2b880..7bb4443 100644
16677--- a/glib/gatomic.h
16678+++ b/glib/gatomic.h
16679@@ -86,7 +86,13 @@ G_END_DECLS
16680 #if defined(G_ATOMIC_LOCK_FREE) && defined(__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4)
16681
16682 /* We prefer the new C11-style atomic extension of GCC if available */
16683-#if defined(__ATOMIC_SEQ_CST)
16684+/* OHOS_GLIB_COMPATIBLE
16685+ * ohos.glib.compatible.001: glib 2.62.5 update 2.68.1 Incompatible with gstreamer 1.16.2
16686+ * static volatile gsize _init_once = 0; // Conflicts with volatile,
16687+ *    if (g_once_init_enter (&_init_once))
16688+ *    add "&& !defined(__clang__)"
16689+ */
16690+#if defined(__ATOMIC_SEQ_CST) && !defined(__clang__)
16691
16692 #define g_atomic_int_get(atomic) \
16693   (G_GNUC_EXTENSION ({                                                       \
16694diff --git a/glib/ggettext.c b/glib/ggettext.c
16695index 303b9b9..4d4cb25 100644
16696--- a/glib/ggettext.c
16697+++ b/glib/ggettext.c
16698@@ -40,7 +40,12 @@
16699
16700 #include <string.h>
16701 #include <locale.h>
16702+#ifndef OHOS_OPT_COMPAT
16703+/* ohos.opt.compat.001:
16704+ * Remove dependency to gettext
16705+ */
16706 #include <libintl.h>
16707+#endif
16708
16709 #ifdef G_OS_WIN32
16710
16711diff --git a/glib/gi18n-lib.h b/glib/gi18n-lib.h
16712index 74e50a3..b6cc3d8 100644
16713--- a/glib/gi18n-lib.h
16714+++ b/glib/gi18n-lib.h
16715@@ -20,7 +20,12 @@
16716
16717 #include <glib.h>
16718
16719+#ifndef OHOS_OPT_COMPAT
16720+/* ohos.opt.compat.001:
16721+ * Remove dependency to gettext
16722+ */
16723 #include <libintl.h>
16724+#endif
16725 #include <string.h>
16726
16727 #ifndef GETTEXT_PACKAGE
16728diff --git a/glib/gi18n.h b/glib/gi18n.h
16729index 5f996d2..a3e11c4 100644
16730--- a/glib/gi18n.h
16731+++ b/glib/gi18n.h
16732@@ -20,7 +20,12 @@
16733
16734 #include <glib.h>
16735
16736+#ifndef OHOS_OPT_COMPAT
16737+/* ohos.opt.compat.001:
16738+ * Remove dependency to gettext
16739+ */
16740 #include <libintl.h>
16741+#endif
16742 #include <string.h>
16743
16744 #define  _(String) gettext (String)
16745diff --git a/glib/glibconfig.h b/glib/glibconfig.h
16746new file mode 100644
16747index 0000000..4189f00
16748--- /dev/null
16749+++ b/glib/glibconfig.h
16750@@ -0,0 +1,294 @@
16751+/* glibconfig.h
16752+ *
16753+ * This is a generated file.  Please modify 'glibconfig.h.in'
16754+ */
16755+
16756+#ifndef __GLIBCONFIG_H__
16757+#define __GLIBCONFIG_H__
16758+
16759+#include <glib/gmacros.h>
16760+
16761+#include <limits.h>
16762+#include <float.h>
16763+#define GLIB_HAVE_ALLOCA_H
16764+
16765+/* Specifies that GLib's g_print*() functions wrap the
16766+ * system printf functions.  This is useful to know, for example,
16767+ * when using glibc's register_printf_function().
16768+ */
16769+#undef GLIB_USING_SYSTEM_PRINTF
16770+
16771+/* #undef GLIB_STATIC_COMPILATION */
16772+/* #undef GOBJECT_STATIC_COMPILATION */
16773+/* #undef G_INTL_STATIC_COMPILATION */
16774+/* #undef FFI_STATIC_BUILD */
16775+
16776+G_BEGIN_DECLS
16777+
16778+#define G_MINFLOAT	FLT_MIN
16779+#define G_MAXFLOAT	FLT_MAX
16780+#define G_MINDOUBLE	DBL_MIN
16781+#define G_MAXDOUBLE	DBL_MAX
16782+#define G_MINSHORT	SHRT_MIN
16783+#define G_MAXSHORT	SHRT_MAX
16784+#define G_MAXUSHORT	USHRT_MAX
16785+#define G_MININT	INT_MIN
16786+#define G_MAXINT	INT_MAX
16787+#define G_MAXUINT	UINT_MAX
16788+#define G_MINLONG	LONG_MIN
16789+#define G_MAXLONG	LONG_MAX
16790+#define G_MAXULONG	ULONG_MAX
16791+
16792+typedef signed char gint8;
16793+typedef unsigned char guint8;
16794+
16795+typedef signed short gint16;
16796+typedef unsigned short guint16;
16797+
16798+#define G_GINT16_MODIFIER "h"
16799+#define G_GINT16_FORMAT "hi"
16800+#define G_GUINT16_FORMAT "hu"
16801+
16802+
16803+typedef signed int gint32;
16804+typedef unsigned int guint32;
16805+
16806+#define G_GINT32_MODIFIER ""
16807+#define G_GINT32_FORMAT "i"
16808+#define G_GUINT32_FORMAT "u"
16809+
16810+
16811+#define G_HAVE_GINT64 1          /* deprecated, always true */
16812+
16813+#ifdef __LP64__
16814+
16815+typedef signed long gint64;
16816+typedef unsigned long guint64;
16817+
16818+#define G_GINT64_CONSTANT(val)	(val##L)
16819+#define G_GUINT64_CONSTANT(val)	(val##UL)
16820+
16821+#define G_GINT64_MODIFIER "l"
16822+#define G_GINT64_FORMAT "li"
16823+#define G_GUINT64_FORMAT "lu"
16824+
16825+
16826+#define GLIB_SIZEOF_VOID_P 8
16827+#define GLIB_SIZEOF_LONG   8
16828+#define GLIB_SIZEOF_SIZE_T 8
16829+#define GLIB_SIZEOF_SSIZE_T 8
16830+
16831+typedef signed long gssize;
16832+typedef unsigned long gsize;
16833+#define G_GSIZE_MODIFIER "l"
16834+#define G_GSSIZE_MODIFIER "l"
16835+#define G_GSIZE_FORMAT "lu"
16836+#define G_GSSIZE_FORMAT "li"
16837+
16838+#define G_MAXSIZE	G_MAXULONG
16839+#define G_MINSSIZE	G_MINLONG
16840+#define G_MAXSSIZE	G_MAXLONG
16841+
16842+typedef gint64 goffset;
16843+#define G_MINOFFSET	G_MININT64
16844+#define G_MAXOFFSET	G_MAXINT64
16845+
16846+#define G_GOFFSET_MODIFIER      G_GINT64_MODIFIER
16847+#define G_GOFFSET_FORMAT        G_GINT64_FORMAT
16848+#define G_GOFFSET_CONSTANT(val) G_GINT64_CONSTANT(val)
16849+
16850+#define G_POLLFD_FORMAT "%d"
16851+
16852+#define GPOINTER_TO_INT(p)	((gint)  (glong) (p))
16853+#define GPOINTER_TO_UINT(p)	((guint) (gulong) (p))
16854+
16855+#define GINT_TO_POINTER(i)	((gpointer) (glong) (i))
16856+#define GUINT_TO_POINTER(u)	((gpointer) (gulong) (u))
16857+
16858+typedef signed long gintptr;
16859+typedef unsigned long guintptr;
16860+
16861+#define G_GINTPTR_MODIFIER      "l"
16862+#define G_GINTPTR_FORMAT        "li"
16863+#define G_GUINTPTR_FORMAT       "lu"
16864+
16865+#else
16866+
16867+G_GNUC_EXTENSION typedef signed long long gint64;
16868+G_GNUC_EXTENSION typedef unsigned long long guint64;
16869+
16870+#define G_GINT64_CONSTANT(val)	(G_GNUC_EXTENSION (val##LL))
16871+#define G_GUINT64_CONSTANT(val)	(G_GNUC_EXTENSION (val##ULL))
16872+
16873+#define G_GINT64_MODIFIER "ll"
16874+#define G_GINT64_FORMAT "lli"
16875+#define G_GUINT64_FORMAT "llu"
16876+
16877+
16878+#define GLIB_SIZEOF_VOID_P 4
16879+#define GLIB_SIZEOF_LONG   4
16880+#define GLIB_SIZEOF_SIZE_T 4
16881+#define GLIB_SIZEOF_SSIZE_T 4
16882+
16883+typedef signed int gssize;
16884+typedef unsigned int gsize;
16885+#define G_GSIZE_MODIFIER ""
16886+#define G_GSSIZE_MODIFIER ""
16887+#define G_GSIZE_FORMAT "u"
16888+#define G_GSSIZE_FORMAT "i"
16889+
16890+#define G_MAXSIZE	G_MAXUINT
16891+#define G_MINSSIZE	G_MININT
16892+#define G_MAXSSIZE	G_MAXINT
16893+
16894+typedef gint64 goffset;
16895+#define G_MINOFFSET	G_MININT64
16896+#define G_MAXOFFSET	G_MAXINT64
16897+
16898+#define G_GOFFSET_MODIFIER      G_GINT64_MODIFIER
16899+#define G_GOFFSET_FORMAT        G_GINT64_FORMAT
16900+#define G_GOFFSET_CONSTANT(val) G_GINT64_CONSTANT(val)
16901+
16902+#define G_POLLFD_FORMAT "%d"
16903+
16904+#define GPOINTER_TO_INT(p)	((gint)  (gint) (p))
16905+#define GPOINTER_TO_UINT(p)	((guint) (guint) (p))
16906+
16907+#define GINT_TO_POINTER(i)	((gpointer) (gint) (i))
16908+#define GUINT_TO_POINTER(u)	((gpointer) (guint) (u))
16909+
16910+typedef signed int gintptr;
16911+typedef unsigned int guintptr;
16912+
16913+#define G_GINTPTR_MODIFIER      ""
16914+#define G_GINTPTR_FORMAT        "i"
16915+#define G_GUINTPTR_FORMAT       "u"
16916+#endif
16917+
16918+
16919+#define GLIB_MAJOR_VERSION 2
16920+#define GLIB_MINOR_VERSION 72
16921+#define GLIB_MICRO_VERSION 2
16922+
16923+#define G_OS_UNIX
16924+
16925+#define G_VA_COPY va_copy
16926+#define G_VA_COPY_AS_ARRAY 1
16927+
16928+
16929+#ifndef __cplusplus
16930+# define G_HAVE_ISO_VARARGS 1
16931+#endif
16932+
16933+#ifdef __cplusplus
16934+# define G_HAVE_ISO_VARARGS 1
16935+#endif
16936+
16937+/* gcc-2.95.x supports both gnu style and ISO varargs, but if -ansi
16938+ * is passed ISO vararg support is turned off, and there is no work
16939+ * around to turn it on, so we unconditionally turn it off.
16940+ */
16941+#if __GNUC__ == 2 && __GNUC_MINOR__ == 95
16942+#  undef G_HAVE_ISO_VARARGS
16943+#endif
16944+
16945+#define G_HAVE_GROWING_STACK 0
16946+#define G_HAVE_GNUC_VISIBILITY 1
16947+
16948+#ifndef _MSC_VER
16949+# define G_HAVE_GNUC_VARARGS 1
16950+#endif
16951+
16952+#if defined(__SUNPRO_C) && (__SUNPRO_C >= 0x590)
16953+#define G_GNUC_INTERNAL __attribute__((visibility("hidden")))
16954+#elif defined(__SUNPRO_C) && (__SUNPRO_C >= 0x550)
16955+#define G_GNUC_INTERNAL __hidden
16956+#elif defined (__GNUC__) && defined (G_HAVE_GNUC_VISIBILITY)
16957+#define G_GNUC_INTERNAL __attribute__((visibility("hidden")))
16958+#else
16959+#define G_GNUC_INTERNAL
16960+#endif
16961+
16962+#define G_THREADS_ENABLED
16963+#define G_THREADS_IMPL_POSIX
16964+
16965+#define G_ATOMIC_LOCK_FREE
16966+
16967+#define GINT16_TO_LE(val)	((gint16) (val))
16968+#define GUINT16_TO_LE(val)	((guint16) (val))
16969+#define GINT16_TO_BE(val)	((gint16) GUINT16_SWAP_LE_BE (val))
16970+#define GUINT16_TO_BE(val)	(GUINT16_SWAP_LE_BE (val))
16971+
16972+#define GINT32_TO_LE(val)	((gint32) (val))
16973+#define GUINT32_TO_LE(val)	((guint32) (val))
16974+#define GINT32_TO_BE(val)	((gint32) GUINT32_SWAP_LE_BE (val))
16975+#define GUINT32_TO_BE(val)	(GUINT32_SWAP_LE_BE (val))
16976+
16977+#define GINT64_TO_LE(val)	((gint64) (val))
16978+#define GUINT64_TO_LE(val)	((guint64) (val))
16979+#define GINT64_TO_BE(val)	((gint64) GUINT64_SWAP_LE_BE (val))
16980+#define GUINT64_TO_BE(val)	(GUINT64_SWAP_LE_BE (val))
16981+
16982+#ifdef __LP64__
16983+
16984+#define GLONG_TO_LE(val)	((glong) GINT64_TO_LE (val))
16985+#define GULONG_TO_LE(val)	((gulong) GUINT64_TO_LE (val))
16986+#define GLONG_TO_BE(val)	((glong) GINT64_TO_BE (val))
16987+#define GULONG_TO_BE(val)	((gulong) GUINT64_TO_BE (val))
16988+#define GINT_TO_LE(val)		((gint) GINT32_TO_LE (val))
16989+#define GUINT_TO_LE(val)	((guint) GUINT32_TO_LE (val))
16990+#define GINT_TO_BE(val)		((gint) GINT32_TO_BE (val))
16991+#define GUINT_TO_BE(val)	((guint) GUINT32_TO_BE (val))
16992+#define GSIZE_TO_LE(val)	((gsize) GUINT64_TO_LE (val))
16993+#define GSSIZE_TO_LE(val)	((gssize) GINT64_TO_LE (val))
16994+#define GSIZE_TO_BE(val)	((gsize) GUINT64_TO_BE (val))
16995+#define GSSIZE_TO_BE(val)	((gssize) GINT64_TO_BE (val))
16996+#define G_BYTE_ORDER G_LITTLE_ENDIAN
16997+
16998+#else
16999+
17000+#define GLONG_TO_LE(val)	((glong) GINT32_TO_LE (val))
17001+#define GULONG_TO_LE(val)	((gulong) GUINT32_TO_LE (val))
17002+#define GLONG_TO_BE(val)	((glong) GINT32_TO_BE (val))
17003+#define GULONG_TO_BE(val)	((gulong) GUINT32_TO_BE (val))
17004+#define GINT_TO_LE(val)		((gint) GINT32_TO_LE (val))
17005+#define GUINT_TO_LE(val)	((guint) GUINT32_TO_LE (val))
17006+#define GINT_TO_BE(val)		((gint) GINT32_TO_BE (val))
17007+#define GUINT_TO_BE(val)	((guint) GUINT32_TO_BE (val))
17008+#define GSIZE_TO_LE(val)	((gsize) GUINT32_TO_LE (val))
17009+#define GSSIZE_TO_LE(val)	((gssize) GINT32_TO_LE (val))
17010+#define GSIZE_TO_BE(val)	((gsize) GUINT32_TO_BE (val))
17011+#define GSSIZE_TO_BE(val)	((gssize) GINT32_TO_BE (val))
17012+#define G_BYTE_ORDER G_LITTLE_ENDIAN
17013+
17014+#endif
17015+
17016+
17017+#define GLIB_SYSDEF_POLLIN =1
17018+#define GLIB_SYSDEF_POLLOUT =4
17019+#define GLIB_SYSDEF_POLLPRI =2
17020+#define GLIB_SYSDEF_POLLHUP =16
17021+#define GLIB_SYSDEF_POLLERR =8
17022+#define GLIB_SYSDEF_POLLNVAL =32
17023+
17024+#define G_MODULE_SUFFIX "so"
17025+
17026+typedef int GPid;
17027+#define G_PID_FORMAT "i"
17028+
17029+#define GLIB_SYSDEF_AF_UNIX 1
17030+#define GLIB_SYSDEF_AF_INET 2
17031+#define GLIB_SYSDEF_AF_INET6 10
17032+
17033+#define GLIB_SYSDEF_MSG_OOB 1
17034+#define GLIB_SYSDEF_MSG_PEEK 2
17035+#define GLIB_SYSDEF_MSG_DONTROUTE 4
17036+
17037+#define G_DIR_SEPARATOR '/'
17038+#define G_DIR_SEPARATOR_S "/"
17039+#define G_SEARCHPATH_SEPARATOR ':'
17040+#define G_SEARCHPATH_SEPARATOR_S ":"
17041+
17042+G_END_DECLS
17043+
17044+#endif /* __GLIBCONFIG_H__ */
17045diff --git a/glib/gscanner.c b/glib/gscanner.c
17046index 5f34218..39a9269 100644
17047--- a/glib/gscanner.c
17048+++ b/glib/gscanner.c
17049@@ -1678,7 +1678,7 @@ g_scanner_get_token_i (GScanner	*scanner,
17050
17051     case G_TOKEN_SYMBOL:
17052       if (scanner->config->symbol_2_token)
17053-        *token_p = (GTokenType) ((size_t) value_p->v_symbol);
17054+	*token_p = (GTokenType)(intptr_t)value_p->v_symbol;
17055       break;
17056
17057     case G_TOKEN_BINARY:
17058diff --git a/glib/gslice.c b/glib/gslice.c
17059index 4e99920..c58591e 100644
17060--- a/glib/gslice.c
17061+++ b/glib/gslice.c
17062@@ -51,6 +51,18 @@
17063
17064 #include "gvalgrind.h"
17065
17066+#include "gmemdfx.h"
17067+
17068+#if defined(G_MEM_DFX)
17069+
17070+#define DFX_TRACE(probe) probe
17071+
17072+#else
17073+
17074+#define DFX_TRACE(probe)
17075+
17076+#endif
17077+
17078 /**
17079  * SECTION:memory_slices
17080  * @title: Memory Slices
17081@@ -675,6 +687,66 @@ magazine_chain_prepare_fields (ChunkLink *magazine_chunks)
17082 #define magazine_chain_next(mc)         ((mc)->next->next->data)
17083 #define magazine_chain_count(mc)        ((mc)->next->next->next->data)
17084
17085+
17086+#ifdef OHOS_OPT_PERFORMANCE
17087+/*
17088+ * ohos.opt.performance.0004
17089+ * fix glib cache too large problem. when thread exit, release mem no user.
17090+ */
17091+
17092+static void
17093+magazine_cache_trim (Allocator *local_allocator,
17094+                     guint ix,
17095+                     guint stamp,
17096+                     gboolean release)
17097+{
17098+  /* g_mutex_lock (local_allocator->mutex); done by caller */
17099+  /* trim magazine cache from tail */
17100+  ChunkLink *current = magazine_chain_prev (local_allocator->magazines[ix]);
17101+  ChunkLink *trash = NULL;
17102+  while (!G_APPROX_VALUE (stamp, magazine_chain_uint_stamp (current),
17103+                          local_allocator->config.working_set_msecs) || release)
17104+    {
17105+      /* unlink */
17106+      ChunkLink *prev = magazine_chain_prev (current);
17107+      ChunkLink *next = magazine_chain_next (current);
17108+      magazine_chain_next (prev) = next;
17109+      magazine_chain_prev (next) = prev;
17110+      /* clear special fields, put on trash stack */
17111+      magazine_chain_next (current) = NULL;
17112+      magazine_chain_count (current) = NULL;
17113+      magazine_chain_stamp (current) = NULL;
17114+      magazine_chain_prev (current) = trash;
17115+      trash = current;
17116+      /* fixup list head if required */
17117+      if (current == local_allocator->magazines[ix])
17118+        {
17119+          local_allocator->magazines[ix] = NULL;
17120+          break;
17121+        }
17122+      current = prev;
17123+    }
17124+  g_mutex_unlock (&local_allocator->magazine_mutex);
17125+  /* free trash */
17126+  if (trash)
17127+    {
17128+      const gsize chunk_size = SLAB_CHUNK_SIZE (local_allocator, ix);
17129+      g_mutex_lock (&local_allocator->slab_mutex);
17130+      while (trash)
17131+        {
17132+          current = trash;
17133+          trash = magazine_chain_prev (current);
17134+          magazine_chain_prev (current) = NULL; /* clear special field */
17135+          while (current)
17136+            {
17137+              ChunkLink *chunk = magazine_chain_pop_head (&current);
17138+              slab_allocator_free_chunk (chunk_size, chunk);
17139+            }
17140+        }
17141+      g_mutex_unlock (&local_allocator->slab_mutex);
17142+    }
17143+}
17144+#else
17145 static void
17146 magazine_cache_trim (Allocator *local_allocator,
17147                      guint ix,
17148@@ -726,7 +798,42 @@ magazine_cache_trim (Allocator *local_allocator,
17149       g_mutex_unlock (&local_allocator->slab_mutex);
17150     }
17151 }
17152+#endif
17153
17154+#ifdef OHOS_OPT_PERFORMANCE
17155+/*
17156+ * ohos.opt.performance.0004
17157+ * fix glib cache too large problem. when thread exit, release mem no user.
17158+ */
17159+static void
17160+magazine_cache_push_magazine (guint      ix,
17161+                              ChunkLink *magazine_chunks,
17162+                              gsize      count, /* must be >= MIN_MAGAZINE_SIZE */
17163+                              gboolean release)
17164+{
17165+  ChunkLink *current = magazine_chain_prepare_fields (magazine_chunks);
17166+  ChunkLink *next, *prev;
17167+  g_mutex_lock (&allocator->magazine_mutex);
17168+  /* add magazine at head */
17169+  next = allocator->magazines[ix];
17170+  if (next)
17171+    prev = magazine_chain_prev (next);
17172+  else
17173+    next = prev = current;
17174+  magazine_chain_next (prev) = current;
17175+  magazine_chain_prev (next) = current;
17176+  magazine_chain_prev (current) = prev;
17177+  magazine_chain_next (current) = next;
17178+  magazine_chain_count (current) = (gpointer) count;
17179+  /* stamp magazine */
17180+  magazine_cache_update_stamp();
17181+  magazine_chain_stamp (current) = GUINT_TO_POINTER (allocator->last_stamp);
17182+  allocator->magazines[ix] = current;
17183+  /* free old magazines beyond a certain threshold */
17184+  magazine_cache_trim (allocator, ix, allocator->last_stamp, release);
17185+  /* g_mutex_unlock (allocator->mutex); was done by magazine_cache_trim() */
17186+}
17187+#else
17188 static void
17189 magazine_cache_push_magazine (guint      ix,
17190                               ChunkLink *magazine_chunks,
17191@@ -754,6 +861,7 @@ magazine_cache_push_magazine (guint      ix,
17192   magazine_cache_trim (allocator, ix, allocator->last_stamp);
17193   /* g_mutex_unlock (allocator->mutex); was done by magazine_cache_trim() */
17194 }
17195+#endif
17196
17197 static ChunkLink*
17198 magazine_cache_pop_magazine (guint  ix,
17199@@ -818,7 +926,15 @@ private_thread_memory_cleanup (gpointer data)
17200         {
17201           Magazine *mag = mags[j];
17202           if (mag->count >= MIN_MAGAZINE_SIZE)
17203+#ifdef OHOS_OPT_PERFORMANCE
17204+/*
17205+ * ohos.opt.performance.0004
17206+ * fix glib cache too large problem. when thread exit, release mem no user.
17207+ */
17208+            magazine_cache_push_magazine (ix, mag->chunks, mag->count, TRUE);
17209+#else
17210             magazine_cache_push_magazine (ix, mag->chunks, mag->count);
17211+#endif
17212           else
17213             {
17214               const gsize chunk_size = SLAB_CHUNK_SIZE (allocator, ix);
17215@@ -850,7 +966,15 @@ thread_memory_magazine2_unload (ThreadMemory *tmem,
17216                                 guint         ix)
17217 {
17218   Magazine *mag = &tmem->magazine2[ix];
17219+#ifdef OHOS_OPT_PERFORMANCE
17220+/*
17221+ * ohos.opt.performance.0004
17222+ * fix glib cache too large problem. when thread exit, release mem no user.
17223+ */
17224+  magazine_cache_push_magazine (ix, mag->chunks, mag->count, FALSE);
17225+#else
17226   magazine_cache_push_magazine (ix, mag->chunks, mag->count);
17227+#endif
17228   mag->chunks = NULL;
17229   mag->count = 0;
17230 }
17231@@ -1074,7 +1198,7 @@ g_slice_alloc (gsize mem_size)
17232     smc_notify_alloc (mem, mem_size);
17233
17234   TRACE (GLIB_SLICE_ALLOC((void*)mem, mem_size));
17235-
17236+  DFX_TRACE(GMemAllocDfx((void *)mem, (unsigned int)mem_size));
17237   return mem;
17238 }
17239
17240@@ -1183,6 +1307,7 @@ g_slice_free1 (gsize    mem_size,
17241       g_free (mem_block);
17242     }
17243   TRACE (GLIB_SLICE_FREE((void*)mem_block, mem_size));
17244+  DFX_TRACE(GMemFreeDfx((void *)mem_block));
17245 }
17246
17247 /**
17248@@ -1210,6 +1335,7 @@ g_slice_free_chain_with_offset (gsize    mem_size,
17249                                 gpointer mem_chain,
17250                                 gsize    next_offset)
17251 {
17252+  DFX_TRACE(GChainMemFreeDfx((void *)mem_chain, next_offset));
17253   gpointer slice = mem_chain;
17254   /* while the thread magazines and the magazine cache are implemented so that
17255    * they can easily be extended to allow for free lists containing more free
17256@@ -1457,6 +1583,7 @@ allocator_memalign (gsize alignment,
17257   gint err = ENOMEM;
17258 #if     HAVE_POSIX_MEMALIGN
17259   err = posix_memalign (&aligned_memory, alignment, memsize);
17260+  DFX_TRACE(GMemPoolAllocDfx(aligned_memory, alignment, memsize));
17261 #elif   HAVE_MEMALIGN
17262   errno = 0;
17263   aligned_memory = memalign (alignment, memsize);
17264@@ -1500,6 +1627,7 @@ allocator_memfree (gsize    memsize,
17265                    gpointer mem)
17266 {
17267 #if     HAVE_POSIX_MEMALIGN || HAVE_MEMALIGN || HAVE_VALLOC
17268+  DFX_TRACE(GMemPoolFreeDfx(mem));
17269   free (mem);
17270 #else
17271   mem_assert (memsize <= sys_page_size);
17272diff --git a/glib/gstrfuncs.h b/glib/gstrfuncs.h
17273index 2b44c9a..520faa1 100644
17274--- a/glib/gstrfuncs.h
17275+++ b/glib/gstrfuncs.h
17276@@ -253,7 +253,15 @@ GLIB_AVAILABLE_IN_ALL
17277 gchar*                g_strescape      (const gchar *source,
17278 					const gchar *exceptions) G_GNUC_MALLOC;
17279
17280+
17281+/* ohos.glib.compatible.001: glib 2.62.5 update 2.68.1 Incompatible with gstreamer/libsoup
17282+ * GLIB Not allowed g_memdup but gstreamer/libsoup need to use g_memdup
17283+ */
17284+#ifdef OHOS_GLIB_COMPATIBLE
17285+GLIB_AVAILABLE_IN_ALL
17286+#else
17287 GLIB_DEPRECATED_IN_2_68_FOR (g_memdup2)
17288+#endif
17289 gpointer              g_memdup         (gconstpointer mem,
17290                                         guint         byte_size) G_GNUC_ALLOC_SIZE(2);
17291
17292diff --git a/glib/gthread-posix.c b/glib/gthread-posix.c
17293index 8e2e66d..9286fc7 100644
17294--- a/glib/gthread-posix.c
17295+++ b/glib/gthread-posix.c
17296@@ -72,8 +72,14 @@
17297 #include <sys/syscall.h>
17298 #endif
17299
17300+/* OHOS_GLIB_COMPATIBLE
17301+ * ohos.glib.compatible.001: glib 2.62.5 update 2.68.1 Incompatible with gstreamer 1.16.2
17302+ * static volatile gsize _init_once = 0; // Conflicts with volatile,
17303+ *    if (g_once_init_enter (&_init_once))
17304+ *    add "&& !defined(__clang__)"
17305+ */
17306 #if defined(HAVE_FUTEX) && \
17307-    (defined(HAVE_STDATOMIC_H) || defined(__ATOMIC_SEQ_CST))
17308+    (defined(HAVE_STDATOMIC_H) || defined(__ATOMIC_SEQ_CST)) && !defined(__clang__)
17309 #define USE_NATIVE_MUTEX
17310 #endif
17311
17312diff --git a/glibmemdfx/gmemdfx.cpp b/glibmemdfx/gmemdfx.cpp
17313new file mode 100644
17314index 0000000..7c36613
17315--- /dev/null
17316+++ b/glibmemdfx/gmemdfx.cpp
17317@@ -0,0 +1,224 @@
17318+/*
17319+ * Copyright (C) 2022 Huawei Device Co., Ltd.
17320+ * Licensed under the Apache License, Version 2.0 (the "License");
17321+ * you may not use this file except in compliance with the License.
17322+ * You may obtain a copy of the License at
17323+ *
17324+ *     http://www.apache.org/licenses/LICENSE-2.0
17325+ *
17326+ * Unless required by applicable law or agreed to in writing, software
17327+ * distributed under the License is distributed on an "AS IS" BASIS,
17328+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17329+ * See the License for the specific language governing permissions and
17330+ * limitations under the License.
17331+ */
17332+
17333+#include "gmemdfx.h"
17334+#include <unordered_map>
17335+#include <vector>
17336+#include <hilog/log.h>
17337+#include <unistd.h>
17338+#include "gmemdfxdump.h"
17339+#include "dfx_dump_catcher.h"
17340+#include "param_wrapper.h"
17341+#include "string_ex.h"
17342+
17343+#undef LOG_DOMAIN
17344+#define LOG_DOMAIN 0xD002B00
17345+
17346+#define __LOG(func, fmt, args...)                                                       \
17347+    do {                                                                                      \
17348+        (void)func(LABEL, "{%{public}s():%{public}d} " fmt, __FUNCTION__, __LINE__, ##args);  \
17349+    } while (0)
17350+
17351+#define LOGE(fmt, ...) __LOG(::OHOS::HiviewDFX::HiLog::Error, fmt, ##__VA_ARGS__)
17352+
17353+#define POINTER_MASK 0x00FFFFFF
17354+#define FAKE_POINTER(addr) (POINTER_MASK & reinterpret_cast<uintptr_t>(addr))
17355+
17356+struct MemInfo {
17357+    uint64_t count = 0;
17358+    uint64_t size = 0;
17359+    std::string str;
17360+    intptr_t mem;
17361+};
17362+
17363+struct PoolInfo {
17364+    uint64_t count = 0;
17365+    uint64_t size = 0;
17366+    uint64_t alignment = 0;
17367+    uint64_t lastTid = 0;
17368+    intptr_t mem;
17369+};
17370+
17371+namespace {
17372+    constexpr OHOS::HiviewDFX::HiLogLabel LABEL = {LOG_CORE, LOG_DOMAIN, "AVGlibMemDfx"};
17373+    static std::unordered_map<void *, MemInfo> memMap;
17374+    static std::unordered_map<void *, PoolInfo> poolMap;
17375+    static uint64_t memCount = 0;
17376+    static uint64_t poolCount = 0;
17377+    static std::mutex mutex;
17378+    static bool enableDump = false;
17379+    static unsigned int dumpSize = 0;
17380+    static unsigned int dumpStart = 0;
17381+    static unsigned int dumpCount = 0;
17382+    static bool dumpOpen = false;
17383+}
17384+
17385+void GMemPoolAllocDfx(void *mem, unsigned int alignment, unsigned int size)
17386+{
17387+    std::lock_guard<std::mutex> lock(mutex);
17388+    if (!dumpOpen || mem == nullptr) {
17389+        return;
17390+    }
17391+    if (poolMap.find(mem) != poolMap.end()) {
17392+        LOGE("the mem 0x%{public}06" PRIXPTR " is already allocated", FAKE_POINTER(mem));
17393+        return;
17394+    }
17395+
17396+    poolMap[mem] = {poolCount++, size, alignment, gettid(), (intptr_t)mem};
17397+}
17398+
17399+void GMemPoolFreeDfx(void *mem)
17400+{
17401+    std::lock_guard<std::mutex> lock(mutex);
17402+    if (!dumpOpen || mem == nullptr) {
17403+        return;
17404+    }
17405+    if (mem != nullptr && poolMap.erase(mem) == 0) {
17406+        LOGE("the mem 0x%{public}06" PRIXPTR " is already free", FAKE_POINTER(mem));
17407+    }
17408+}
17409+
17410+void GMemAllocDfx(void *mem, unsigned int size)
17411+{
17412+    std::lock_guard<std::mutex> lock(mutex);
17413+    if (!dumpOpen || mem == nullptr) {
17414+        return;
17415+    }
17416+    if (memMap.find(mem) != memMap.end()) {
17417+        LOGE("the mem 0x%{public}06" PRIXPTR " is already allocated", FAKE_POINTER(mem));
17418+        return;
17419+    }
17420+    std::string str;
17421+    if (enableDump && size == dumpSize && (memCount - dumpStart) % dumpCount == 0) {
17422+        OHOS::HiviewDFX::DfxDumpCatcher dumpLog;
17423+        bool ret = dumpLog.DumpCatch(getpid(), gettid(), str);
17424+        if (!ret) {
17425+            LOGE("dump error");
17426+        }
17427+    }
17428+
17429+    memMap[mem] = {memCount++, size, str, (intptr_t)mem};
17430+}
17431+
17432+void GChainMemFreeDfx(void *mem_chain, unsigned long next_offset)
17433+{
17434+    std::lock_guard<std::mutex> lock(mutex);
17435+    if (!dumpOpen || mem_chain == nullptr) {
17436+        return;
17437+    }
17438+    void *next = mem_chain;
17439+    while (next) {
17440+        uint8_t *current = (uint8_t *)next;
17441+        next = *(void **)(current + next_offset);
17442+        if (current != nullptr && memMap.erase(current) == 0) {
17443+            LOGE("the mem 0x%{public}06" PRIXPTR " is already free", FAKE_POINTER(current));
17444+        }
17445+    }
17446+}
17447+
17448+void GMemFreeDfx(void *mem)
17449+{
17450+    std::lock_guard<std::mutex> lock(mutex);
17451+    if (!dumpOpen || mem == nullptr) {
17452+        return;
17453+    }
17454+    if (mem != nullptr && memMap.erase(mem) == 0) {
17455+        LOGE("the mem 0x%{public}06" PRIXPTR " is already free", FAKE_POINTER(mem));
17456+    }
17457+}
17458+
17459+void InitParameter()
17460+{
17461+    std::string dumpSizeStr;
17462+    std::string dumpStartStr;
17463+    std::string dumpCountStr;
17464+    std::string dumpOpenStr;
17465+    int32_t size;
17466+    int32_t start;
17467+    int32_t count;
17468+    int32_t res = OHOS::system::GetStringParameter("sys.media.dump.mem.size", dumpSizeStr, "");
17469+    if (res == 0 && !dumpSizeStr.empty()) {
17470+        OHOS::StrToInt(dumpSizeStr, size);
17471+        dumpSize = size;
17472+        enableDump = dumpSize == 0 ? false :true;
17473+    } else {
17474+        enableDump = false;
17475+    }
17476+    res = OHOS::system::GetStringParameter("sys.media.dump.mem.start", dumpStartStr, "");
17477+    if (res == 0 && !dumpStartStr.empty()) {
17478+        OHOS::StrToInt(dumpStartStr, start);
17479+        dumpStart = start;
17480+    } else {
17481+        dumpStart = 0;
17482+    }
17483+    res = OHOS::system::GetStringParameter("sys.media.dump.mem.count", dumpCountStr, "");
17484+    if (res == 0 && !dumpCountStr.empty()) {
17485+        OHOS::StrToInt(dumpCountStr, count);
17486+        dumpCount = count;
17487+    } else {
17488+        dumpCount = 1;
17489+    }
17490+    res = OHOS::system::GetStringParameter("sys.media.dump.mem.open", dumpOpenStr, "");
17491+    if (res == 0 && !dumpOpenStr.empty()) {
17492+        dumpOpen = dumpOpenStr == "TRUE" ? true : false;
17493+    } else {
17494+        dumpOpen = false;
17495+    }
17496+}
17497+
17498+void GetGMemDump(std::string &str)
17499+{
17500+    std::unordered_map<void *, MemInfo> memMapCopy;
17501+    {
17502+        std::lock_guard<std::mutex> lock(mutex);
17503+        InitParameter();
17504+        memMapCopy = memMap;
17505+    }
17506+    std::vector<std::pair<void *, MemInfo>> memInfoVec(memMapCopy.begin(), memMapCopy.end());
17507+    std::sort(memInfoVec.begin(), memInfoVec.end(), [&](auto &left, auto &right) {
17508+        return left.second.count < right.second.count;
17509+    });
17510+    for (auto iter = memInfoVec.begin(); iter != memInfoVec.end(); iter++) {
17511+        str += "count:";
17512+        str += std::to_string(iter->second.count) + ";";
17513+        str += "size:";
17514+        str += std::to_string(iter->second.size) + "\n";
17515+        str += iter->second.str + "\n";
17516+    }
17517+}
17518+
17519+void GetGMemPoolDump(std::string &str)
17520+{
17521+    std::unordered_map<void *, PoolInfo> poolMapCopy;
17522+    {
17523+        std::lock_guard<std::mutex> lock(mutex);
17524+        InitParameter();
17525+        poolMapCopy = poolMap;
17526+    }
17527+    std::vector<std::pair<void *, PoolInfo>> poolInfoVec(poolMapCopy.begin(), poolMapCopy.end());
17528+    std::sort(poolInfoVec.begin(), poolInfoVec.end(), [&](auto &left, auto &right) {
17529+        return left.second.count < right.second.count;
17530+    });
17531+    for (auto iter = poolInfoVec.begin(); iter != poolInfoVec.end(); iter++) {
17532+        str += "count:";
17533+        str += std::to_string(iter->second.count) + ";";
17534+        str += "size:";
17535+        str += std::to_string(iter->second.size) + "\n";
17536+        str += "alignment:";
17537+        str += std::to_string(iter->second.alignment) + "\n";
17538+        str += "lastTid:";
17539+        str += std::to_string(iter->second.lastTid) + "\n";
17540+    }
17541+}
17542\ No newline at end of file
17543diff --git a/glibmemdfx/gmemdfx.h b/glibmemdfx/gmemdfx.h
17544new file mode 100644
17545index 0000000..fd0e9df
17546--- /dev/null
17547+++ b/glibmemdfx/gmemdfx.h
17548@@ -0,0 +1,31 @@
17549+/*
17550+ * Copyright (C) 2022 Huawei Device Co., Ltd.
17551+ * Licensed under the Apache License, Version 2.0 (the "License");
17552+ * you may not use this file except in compliance with the License.
17553+ * You may obtain a copy of the License at
17554+ *
17555+ *     http://www.apache.org/licenses/LICENSE-2.0
17556+ *
17557+ * Unless required by applicable law or agreed to in writing, software
17558+ * distributed under the License is distributed on an "AS IS" BASIS,
17559+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17560+ * See the License for the specific language governing permissions and
17561+ * limitations under the License.
17562+ */
17563+#ifndef G_MEM_DFX_H
17564+#define G_MEM_DFX_H
17565+
17566+#ifdef __cplusplus
17567+extern "C" {
17568+#endif
17569+
17570+void __attribute__((visibility("default"))) GMemAllocDfx(void *mem, unsigned int size);
17571+void __attribute__((visibility("default"))) GChainMemFreeDfx(void *mem_chain, unsigned long next_offset);
17572+void __attribute__((visibility("default"))) GMemFreeDfx(void *mem);
17573+
17574+void __attribute__((visibility("default"))) GMemPoolAllocDfx(void *mem, unsigned int alignment, unsigned int size);
17575+void __attribute__((visibility("default"))) GMemPoolFreeDfx(void *mem);
17576+#ifdef __cplusplus
17577+}
17578+#endif
17579+#endif
17580\ No newline at end of file
17581diff --git a/glibmemdfx/gmemdfxdump.h b/glibmemdfx/gmemdfxdump.h
17582new file mode 100644
17583index 0000000..edf58e3
17584--- /dev/null
17585+++ b/glibmemdfx/gmemdfxdump.h
17586@@ -0,0 +1,23 @@
17587+/*
17588+ * Copyright (C) 2022 Huawei Device Co., Ltd.
17589+ * Licensed under the Apache License, Version 2.0 (the "License");
17590+ * you may not use this file except in compliance with the License.
17591+ * You may obtain a copy of the License at
17592+ *
17593+ *     http://www.apache.org/licenses/LICENSE-2.0
17594+ *
17595+ * Unless required by applicable law or agreed to in writing, software
17596+ * distributed under the License is distributed on an "AS IS" BASIS,
17597+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17598+ * See the License for the specific language governing permissions and
17599+ * limitations under the License.
17600+ */
17601+#ifndef G_MEM_DFX_DUMP_H
17602+#define G_MEM_DFX_DUMP_H
17603+
17604+#include <memory>
17605+
17606+void __attribute__((visibility("default"))) GetGMemDump(std::string &str);
17607+void __attribute__((visibility("default"))) GetGMemPoolDump(std::string &str);
17608+
17609+#endif
17610\ No newline at end of file
17611diff --git a/gmodule/gmoduleconf.h b/gmodule/gmoduleconf.h
17612new file mode 100644
17613index 0000000..9908fd1
17614--- /dev/null
17615+++ b/gmodule/gmoduleconf.h
17616@@ -0,0 +1,48 @@
17617+/* GMODULE - GLIB wrapper code for dynamic module loading
17618+ * Copyright (C) 1998 Tim Janik
17619+ *
17620+ * This library is free software; you can redistribute it and/or
17621+ * modify it under the terms of the GNU Lesser General Public
17622+ * License as published by the Free Software Foundation; either
17623+ * version 2.1 of the License, or (at your option) any later version.
17624+ *
17625+ * This library is distributed in the hope that it will be useful,
17626+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
17627+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
17628+ * Lesser General Public License for more details.
17629+ *
17630+ * You should have received a copy of the GNU Lesser General Public
17631+ * License along with this library; if not, see <http://www.gnu.org/licenses/>.
17632+ */
17633+#ifndef __G_MODULE_CONF_H__
17634+#define __G_MODULE_CONF_H__
17635+
17636+
17637+#ifdef __cplusplus
17638+extern "C" {
17639+#endif /* __cplusplus */
17640+
17641+
17642+#define	G_MODULE_IMPL_NONE	0
17643+#define	G_MODULE_IMPL_DL	1
17644+#define	G_MODULE_IMPL_WIN32	3
17645+#define	G_MODULE_IMPL_AR	7
17646+
17647+#define	G_MODULE_IMPL		G_MODULE_IMPL_DL
17648+#undef	G_MODULE_HAVE_DLERROR
17649+#if	(1)
17650+#define	G_MODULE_HAVE_DLERROR
17651+#endif
17652+#if	(0)
17653+#define	G_MODULE_NEED_USCORE
17654+#endif
17655+#if	(0)
17656+#define G_MODULE_BROKEN_RTLD_GLOBAL
17657+#endif
17658+
17659+#ifdef __cplusplus
17660+}
17661+#endif /* __cplusplus */
17662+
17663+
17664+#endif /* __G_MODULE_CONF_H__ */
17665diff --git a/gobject/gclosure.c b/gobject/gclosure.c
17666index 85002a2..701181c 100644
17667--- a/gobject/gclosure.c
17668+++ b/gobject/gclosure.c
17669@@ -1302,7 +1302,11 @@ restart:
17670       g_value_set_boolean (gvalue, (gboolean) *int_val);
17671       break;
17672     case G_TYPE_STRING:
17673+#ifdef __ILP32__
17674+      g_value_take_string (gvalue, (gchar*) *int_val);
17675+#else
17676       g_value_take_string (gvalue, *(gchar**)value);
17677+#endif
17678       break;
17679     case G_TYPE_CHAR:
17680       g_value_set_schar (gvalue, (gint8) *int_val);
17681diff --git a/gobject/glib-enumtypes.c b/gobject/glib-enumtypes.c
17682new file mode 100644
17683index 0000000..5d5eaf6
17684--- /dev/null
17685+++ b/gobject/glib-enumtypes.c
17686@@ -0,0 +1,328 @@
17687+
17688+/* This file is generated by glib-mkenums, do not modify it. This code is licensed under the same license as the containing project. Note that it links to GLib, so must comply with the LGPL linking clauses. */
17689+
17690+#include "config.h"
17691+#include "glib-enumtypes.h"
17692+#include <glib-object.h>
17693+
17694+G_GNUC_BEGIN_IGNORE_DEPRECATIONS
17695+/* enumerations from "../gobject/../glib/gunicode.h" */
17696+GType
17697+g_unicode_type_get_type (void)
17698+{
17699+  static gsize static_g_define_type_id = 0;
17700+
17701+  if (g_once_init_enter (&static_g_define_type_id))
17702+    {
17703+      static const GEnumValue values[] = {
17704+        { G_UNICODE_CONTROL, "G_UNICODE_CONTROL", "control" },
17705+        { G_UNICODE_FORMAT, "G_UNICODE_FORMAT", "format" },
17706+        { G_UNICODE_UNASSIGNED, "G_UNICODE_UNASSIGNED", "unassigned" },
17707+        { G_UNICODE_PRIVATE_USE, "G_UNICODE_PRIVATE_USE", "private-use" },
17708+        { G_UNICODE_SURROGATE, "G_UNICODE_SURROGATE", "surrogate" },
17709+        { G_UNICODE_LOWERCASE_LETTER, "G_UNICODE_LOWERCASE_LETTER", "lowercase-letter" },
17710+        { G_UNICODE_MODIFIER_LETTER, "G_UNICODE_MODIFIER_LETTER", "modifier-letter" },
17711+        { G_UNICODE_OTHER_LETTER, "G_UNICODE_OTHER_LETTER", "other-letter" },
17712+        { G_UNICODE_TITLECASE_LETTER, "G_UNICODE_TITLECASE_LETTER", "titlecase-letter" },
17713+        { G_UNICODE_UPPERCASE_LETTER, "G_UNICODE_UPPERCASE_LETTER", "uppercase-letter" },
17714+        { G_UNICODE_SPACING_MARK, "G_UNICODE_SPACING_MARK", "spacing-mark" },
17715+        { G_UNICODE_ENCLOSING_MARK, "G_UNICODE_ENCLOSING_MARK", "enclosing-mark" },
17716+        { G_UNICODE_NON_SPACING_MARK, "G_UNICODE_NON_SPACING_MARK", "non-spacing-mark" },
17717+        { G_UNICODE_DECIMAL_NUMBER, "G_UNICODE_DECIMAL_NUMBER", "decimal-number" },
17718+        { G_UNICODE_LETTER_NUMBER, "G_UNICODE_LETTER_NUMBER", "letter-number" },
17719+        { G_UNICODE_OTHER_NUMBER, "G_UNICODE_OTHER_NUMBER", "other-number" },
17720+        { G_UNICODE_CONNECT_PUNCTUATION, "G_UNICODE_CONNECT_PUNCTUATION", "connect-punctuation" },
17721+        { G_UNICODE_DASH_PUNCTUATION, "G_UNICODE_DASH_PUNCTUATION", "dash-punctuation" },
17722+        { G_UNICODE_CLOSE_PUNCTUATION, "G_UNICODE_CLOSE_PUNCTUATION", "close-punctuation" },
17723+        { G_UNICODE_FINAL_PUNCTUATION, "G_UNICODE_FINAL_PUNCTUATION", "final-punctuation" },
17724+        { G_UNICODE_INITIAL_PUNCTUATION, "G_UNICODE_INITIAL_PUNCTUATION", "initial-punctuation" },
17725+        { G_UNICODE_OTHER_PUNCTUATION, "G_UNICODE_OTHER_PUNCTUATION", "other-punctuation" },
17726+        { G_UNICODE_OPEN_PUNCTUATION, "G_UNICODE_OPEN_PUNCTUATION", "open-punctuation" },
17727+        { G_UNICODE_CURRENCY_SYMBOL, "G_UNICODE_CURRENCY_SYMBOL", "currency-symbol" },
17728+        { G_UNICODE_MODIFIER_SYMBOL, "G_UNICODE_MODIFIER_SYMBOL", "modifier-symbol" },
17729+        { G_UNICODE_MATH_SYMBOL, "G_UNICODE_MATH_SYMBOL", "math-symbol" },
17730+        { G_UNICODE_OTHER_SYMBOL, "G_UNICODE_OTHER_SYMBOL", "other-symbol" },
17731+        { G_UNICODE_LINE_SEPARATOR, "G_UNICODE_LINE_SEPARATOR", "line-separator" },
17732+        { G_UNICODE_PARAGRAPH_SEPARATOR, "G_UNICODE_PARAGRAPH_SEPARATOR", "paragraph-separator" },
17733+        { G_UNICODE_SPACE_SEPARATOR, "G_UNICODE_SPACE_SEPARATOR", "space-separator" },
17734+        { 0, NULL, NULL }
17735+      };
17736+      GType g_define_type_id =
17737+        g_enum_register_static (g_intern_static_string ("GUnicodeType"), values);
17738+      g_once_init_leave (&static_g_define_type_id, g_define_type_id);
17739+    }
17740+
17741+  return static_g_define_type_id;
17742+}
17743+GType
17744+g_unicode_break_type_get_type (void)
17745+{
17746+  static gsize static_g_define_type_id = 0;
17747+
17748+  if (g_once_init_enter (&static_g_define_type_id))
17749+    {
17750+      static const GEnumValue values[] = {
17751+        { G_UNICODE_BREAK_MANDATORY, "G_UNICODE_BREAK_MANDATORY", "mandatory" },
17752+        { G_UNICODE_BREAK_CARRIAGE_RETURN, "G_UNICODE_BREAK_CARRIAGE_RETURN", "carriage-return" },
17753+        { G_UNICODE_BREAK_LINE_FEED, "G_UNICODE_BREAK_LINE_FEED", "line-feed" },
17754+        { G_UNICODE_BREAK_COMBINING_MARK, "G_UNICODE_BREAK_COMBINING_MARK", "combining-mark" },
17755+        { G_UNICODE_BREAK_SURROGATE, "G_UNICODE_BREAK_SURROGATE", "surrogate" },
17756+        { G_UNICODE_BREAK_ZERO_WIDTH_SPACE, "G_UNICODE_BREAK_ZERO_WIDTH_SPACE", "zero-width-space" },
17757+        { G_UNICODE_BREAK_INSEPARABLE, "G_UNICODE_BREAK_INSEPARABLE", "inseparable" },
17758+        { G_UNICODE_BREAK_NON_BREAKING_GLUE, "G_UNICODE_BREAK_NON_BREAKING_GLUE", "non-breaking-glue" },
17759+        { G_UNICODE_BREAK_CONTINGENT, "G_UNICODE_BREAK_CONTINGENT", "contingent" },
17760+        { G_UNICODE_BREAK_SPACE, "G_UNICODE_BREAK_SPACE", "space" },
17761+        { G_UNICODE_BREAK_AFTER, "G_UNICODE_BREAK_AFTER", "after" },
17762+        { G_UNICODE_BREAK_BEFORE, "G_UNICODE_BREAK_BEFORE", "before" },
17763+        { G_UNICODE_BREAK_BEFORE_AND_AFTER, "G_UNICODE_BREAK_BEFORE_AND_AFTER", "before-and-after" },
17764+        { G_UNICODE_BREAK_HYPHEN, "G_UNICODE_BREAK_HYPHEN", "hyphen" },
17765+        { G_UNICODE_BREAK_NON_STARTER, "G_UNICODE_BREAK_NON_STARTER", "non-starter" },
17766+        { G_UNICODE_BREAK_OPEN_PUNCTUATION, "G_UNICODE_BREAK_OPEN_PUNCTUATION", "open-punctuation" },
17767+        { G_UNICODE_BREAK_CLOSE_PUNCTUATION, "G_UNICODE_BREAK_CLOSE_PUNCTUATION", "close-punctuation" },
17768+        { G_UNICODE_BREAK_QUOTATION, "G_UNICODE_BREAK_QUOTATION", "quotation" },
17769+        { G_UNICODE_BREAK_EXCLAMATION, "G_UNICODE_BREAK_EXCLAMATION", "exclamation" },
17770+        { G_UNICODE_BREAK_IDEOGRAPHIC, "G_UNICODE_BREAK_IDEOGRAPHIC", "ideographic" },
17771+        { G_UNICODE_BREAK_NUMERIC, "G_UNICODE_BREAK_NUMERIC", "numeric" },
17772+        { G_UNICODE_BREAK_INFIX_SEPARATOR, "G_UNICODE_BREAK_INFIX_SEPARATOR", "infix-separator" },
17773+        { G_UNICODE_BREAK_SYMBOL, "G_UNICODE_BREAK_SYMBOL", "symbol" },
17774+        { G_UNICODE_BREAK_ALPHABETIC, "G_UNICODE_BREAK_ALPHABETIC", "alphabetic" },
17775+        { G_UNICODE_BREAK_PREFIX, "G_UNICODE_BREAK_PREFIX", "prefix" },
17776+        { G_UNICODE_BREAK_POSTFIX, "G_UNICODE_BREAK_POSTFIX", "postfix" },
17777+        { G_UNICODE_BREAK_COMPLEX_CONTEXT, "G_UNICODE_BREAK_COMPLEX_CONTEXT", "complex-context" },
17778+        { G_UNICODE_BREAK_AMBIGUOUS, "G_UNICODE_BREAK_AMBIGUOUS", "ambiguous" },
17779+        { G_UNICODE_BREAK_UNKNOWN, "G_UNICODE_BREAK_UNKNOWN", "unknown" },
17780+        { G_UNICODE_BREAK_NEXT_LINE, "G_UNICODE_BREAK_NEXT_LINE", "next-line" },
17781+        { G_UNICODE_BREAK_WORD_JOINER, "G_UNICODE_BREAK_WORD_JOINER", "word-joiner" },
17782+        { G_UNICODE_BREAK_HANGUL_L_JAMO, "G_UNICODE_BREAK_HANGUL_L_JAMO", "hangul-l-jamo" },
17783+        { G_UNICODE_BREAK_HANGUL_V_JAMO, "G_UNICODE_BREAK_HANGUL_V_JAMO", "hangul-v-jamo" },
17784+        { G_UNICODE_BREAK_HANGUL_T_JAMO, "G_UNICODE_BREAK_HANGUL_T_JAMO", "hangul-t-jamo" },
17785+        { G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, "G_UNICODE_BREAK_HANGUL_LV_SYLLABLE", "hangul-lv-syllable" },
17786+        { G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, "G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE", "hangul-lvt-syllable" },
17787+        { G_UNICODE_BREAK_CLOSE_PARANTHESIS, "G_UNICODE_BREAK_CLOSE_PARANTHESIS", "close-paranthesis" },
17788+        { G_UNICODE_BREAK_CLOSE_PARENTHESIS, "G_UNICODE_BREAK_CLOSE_PARENTHESIS", "close-parenthesis" },
17789+        { G_UNICODE_BREAK_CONDITIONAL_JAPANESE_STARTER, "G_UNICODE_BREAK_CONDITIONAL_JAPANESE_STARTER", "conditional-japanese-starter" },
17790+        { G_UNICODE_BREAK_HEBREW_LETTER, "G_UNICODE_BREAK_HEBREW_LETTER", "hebrew-letter" },
17791+        { G_UNICODE_BREAK_REGIONAL_INDICATOR, "G_UNICODE_BREAK_REGIONAL_INDICATOR", "regional-indicator" },
17792+        { G_UNICODE_BREAK_EMOJI_BASE, "G_UNICODE_BREAK_EMOJI_BASE", "emoji-base" },
17793+        { G_UNICODE_BREAK_EMOJI_MODIFIER, "G_UNICODE_BREAK_EMOJI_MODIFIER", "emoji-modifier" },
17794+        { G_UNICODE_BREAK_ZERO_WIDTH_JOINER, "G_UNICODE_BREAK_ZERO_WIDTH_JOINER", "zero-width-joiner" },
17795+        { 0, NULL, NULL }
17796+      };
17797+      GType g_define_type_id =
17798+        g_enum_register_static (g_intern_static_string ("GUnicodeBreakType"), values);
17799+      g_once_init_leave (&static_g_define_type_id, g_define_type_id);
17800+    }
17801+
17802+  return static_g_define_type_id;
17803+}
17804+GType
17805+g_unicode_script_get_type (void)
17806+{
17807+  static gsize static_g_define_type_id = 0;
17808+
17809+  if (g_once_init_enter (&static_g_define_type_id))
17810+    {
17811+      static const GEnumValue values[] = {
17812+        { G_UNICODE_SCRIPT_INVALID_CODE, "G_UNICODE_SCRIPT_INVALID_CODE", "invalid-code" },
17813+        { G_UNICODE_SCRIPT_COMMON, "G_UNICODE_SCRIPT_COMMON", "common" },
17814+        { G_UNICODE_SCRIPT_INHERITED, "G_UNICODE_SCRIPT_INHERITED", "inherited" },
17815+        { G_UNICODE_SCRIPT_ARABIC, "G_UNICODE_SCRIPT_ARABIC", "arabic" },
17816+        { G_UNICODE_SCRIPT_ARMENIAN, "G_UNICODE_SCRIPT_ARMENIAN", "armenian" },
17817+        { G_UNICODE_SCRIPT_BENGALI, "G_UNICODE_SCRIPT_BENGALI", "bengali" },
17818+        { G_UNICODE_SCRIPT_BOPOMOFO, "G_UNICODE_SCRIPT_BOPOMOFO", "bopomofo" },
17819+        { G_UNICODE_SCRIPT_CHEROKEE, "G_UNICODE_SCRIPT_CHEROKEE", "cherokee" },
17820+        { G_UNICODE_SCRIPT_COPTIC, "G_UNICODE_SCRIPT_COPTIC", "coptic" },
17821+        { G_UNICODE_SCRIPT_CYRILLIC, "G_UNICODE_SCRIPT_CYRILLIC", "cyrillic" },
17822+        { G_UNICODE_SCRIPT_DESERET, "G_UNICODE_SCRIPT_DESERET", "deseret" },
17823+        { G_UNICODE_SCRIPT_DEVANAGARI, "G_UNICODE_SCRIPT_DEVANAGARI", "devanagari" },
17824+        { G_UNICODE_SCRIPT_ETHIOPIC, "G_UNICODE_SCRIPT_ETHIOPIC", "ethiopic" },
17825+        { G_UNICODE_SCRIPT_GEORGIAN, "G_UNICODE_SCRIPT_GEORGIAN", "georgian" },
17826+        { G_UNICODE_SCRIPT_GOTHIC, "G_UNICODE_SCRIPT_GOTHIC", "gothic" },
17827+        { G_UNICODE_SCRIPT_GREEK, "G_UNICODE_SCRIPT_GREEK", "greek" },
17828+        { G_UNICODE_SCRIPT_GUJARATI, "G_UNICODE_SCRIPT_GUJARATI", "gujarati" },
17829+        { G_UNICODE_SCRIPT_GURMUKHI, "G_UNICODE_SCRIPT_GURMUKHI", "gurmukhi" },
17830+        { G_UNICODE_SCRIPT_HAN, "G_UNICODE_SCRIPT_HAN", "han" },
17831+        { G_UNICODE_SCRIPT_HANGUL, "G_UNICODE_SCRIPT_HANGUL", "hangul" },
17832+        { G_UNICODE_SCRIPT_HEBREW, "G_UNICODE_SCRIPT_HEBREW", "hebrew" },
17833+        { G_UNICODE_SCRIPT_HIRAGANA, "G_UNICODE_SCRIPT_HIRAGANA", "hiragana" },
17834+        { G_UNICODE_SCRIPT_KANNADA, "G_UNICODE_SCRIPT_KANNADA", "kannada" },
17835+        { G_UNICODE_SCRIPT_KATAKANA, "G_UNICODE_SCRIPT_KATAKANA", "katakana" },
17836+        { G_UNICODE_SCRIPT_KHMER, "G_UNICODE_SCRIPT_KHMER", "khmer" },
17837+        { G_UNICODE_SCRIPT_LAO, "G_UNICODE_SCRIPT_LAO", "lao" },
17838+        { G_UNICODE_SCRIPT_LATIN, "G_UNICODE_SCRIPT_LATIN", "latin" },
17839+        { G_UNICODE_SCRIPT_MALAYALAM, "G_UNICODE_SCRIPT_MALAYALAM", "malayalam" },
17840+        { G_UNICODE_SCRIPT_MONGOLIAN, "G_UNICODE_SCRIPT_MONGOLIAN", "mongolian" },
17841+        { G_UNICODE_SCRIPT_MYANMAR, "G_UNICODE_SCRIPT_MYANMAR", "myanmar" },
17842+        { G_UNICODE_SCRIPT_OGHAM, "G_UNICODE_SCRIPT_OGHAM", "ogham" },
17843+        { G_UNICODE_SCRIPT_OLD_ITALIC, "G_UNICODE_SCRIPT_OLD_ITALIC", "old-italic" },
17844+        { G_UNICODE_SCRIPT_ORIYA, "G_UNICODE_SCRIPT_ORIYA", "oriya" },
17845+        { G_UNICODE_SCRIPT_RUNIC, "G_UNICODE_SCRIPT_RUNIC", "runic" },
17846+        { G_UNICODE_SCRIPT_SINHALA, "G_UNICODE_SCRIPT_SINHALA", "sinhala" },
17847+        { G_UNICODE_SCRIPT_SYRIAC, "G_UNICODE_SCRIPT_SYRIAC", "syriac" },
17848+        { G_UNICODE_SCRIPT_TAMIL, "G_UNICODE_SCRIPT_TAMIL", "tamil" },
17849+        { G_UNICODE_SCRIPT_TELUGU, "G_UNICODE_SCRIPT_TELUGU", "telugu" },
17850+        { G_UNICODE_SCRIPT_THAANA, "G_UNICODE_SCRIPT_THAANA", "thaana" },
17851+        { G_UNICODE_SCRIPT_THAI, "G_UNICODE_SCRIPT_THAI", "thai" },
17852+        { G_UNICODE_SCRIPT_TIBETAN, "G_UNICODE_SCRIPT_TIBETAN", "tibetan" },
17853+        { G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, "G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL", "canadian-aboriginal" },
17854+        { G_UNICODE_SCRIPT_YI, "G_UNICODE_SCRIPT_YI", "yi" },
17855+        { G_UNICODE_SCRIPT_TAGALOG, "G_UNICODE_SCRIPT_TAGALOG", "tagalog" },
17856+        { G_UNICODE_SCRIPT_HANUNOO, "G_UNICODE_SCRIPT_HANUNOO", "hanunoo" },
17857+        { G_UNICODE_SCRIPT_BUHID, "G_UNICODE_SCRIPT_BUHID", "buhid" },
17858+        { G_UNICODE_SCRIPT_TAGBANWA, "G_UNICODE_SCRIPT_TAGBANWA", "tagbanwa" },
17859+        { G_UNICODE_SCRIPT_BRAILLE, "G_UNICODE_SCRIPT_BRAILLE", "braille" },
17860+        { G_UNICODE_SCRIPT_CYPRIOT, "G_UNICODE_SCRIPT_CYPRIOT", "cypriot" },
17861+        { G_UNICODE_SCRIPT_LIMBU, "G_UNICODE_SCRIPT_LIMBU", "limbu" },
17862+        { G_UNICODE_SCRIPT_OSMANYA, "G_UNICODE_SCRIPT_OSMANYA", "osmanya" },
17863+        { G_UNICODE_SCRIPT_SHAVIAN, "G_UNICODE_SCRIPT_SHAVIAN", "shavian" },
17864+        { G_UNICODE_SCRIPT_LINEAR_B, "G_UNICODE_SCRIPT_LINEAR_B", "linear-b" },
17865+        { G_UNICODE_SCRIPT_TAI_LE, "G_UNICODE_SCRIPT_TAI_LE", "tai-le" },
17866+        { G_UNICODE_SCRIPT_UGARITIC, "G_UNICODE_SCRIPT_UGARITIC", "ugaritic" },
17867+        { G_UNICODE_SCRIPT_NEW_TAI_LUE, "G_UNICODE_SCRIPT_NEW_TAI_LUE", "new-tai-lue" },
17868+        { G_UNICODE_SCRIPT_BUGINESE, "G_UNICODE_SCRIPT_BUGINESE", "buginese" },
17869+        { G_UNICODE_SCRIPT_GLAGOLITIC, "G_UNICODE_SCRIPT_GLAGOLITIC", "glagolitic" },
17870+        { G_UNICODE_SCRIPT_TIFINAGH, "G_UNICODE_SCRIPT_TIFINAGH", "tifinagh" },
17871+        { G_UNICODE_SCRIPT_SYLOTI_NAGRI, "G_UNICODE_SCRIPT_SYLOTI_NAGRI", "syloti-nagri" },
17872+        { G_UNICODE_SCRIPT_OLD_PERSIAN, "G_UNICODE_SCRIPT_OLD_PERSIAN", "old-persian" },
17873+        { G_UNICODE_SCRIPT_KHAROSHTHI, "G_UNICODE_SCRIPT_KHAROSHTHI", "kharoshthi" },
17874+        { G_UNICODE_SCRIPT_UNKNOWN, "G_UNICODE_SCRIPT_UNKNOWN", "unknown" },
17875+        { G_UNICODE_SCRIPT_BALINESE, "G_UNICODE_SCRIPT_BALINESE", "balinese" },
17876+        { G_UNICODE_SCRIPT_CUNEIFORM, "G_UNICODE_SCRIPT_CUNEIFORM", "cuneiform" },
17877+        { G_UNICODE_SCRIPT_PHOENICIAN, "G_UNICODE_SCRIPT_PHOENICIAN", "phoenician" },
17878+        { G_UNICODE_SCRIPT_PHAGS_PA, "G_UNICODE_SCRIPT_PHAGS_PA", "phags-pa" },
17879+        { G_UNICODE_SCRIPT_NKO, "G_UNICODE_SCRIPT_NKO", "nko" },
17880+        { G_UNICODE_SCRIPT_KAYAH_LI, "G_UNICODE_SCRIPT_KAYAH_LI", "kayah-li" },
17881+        { G_UNICODE_SCRIPT_LEPCHA, "G_UNICODE_SCRIPT_LEPCHA", "lepcha" },
17882+        { G_UNICODE_SCRIPT_REJANG, "G_UNICODE_SCRIPT_REJANG", "rejang" },
17883+        { G_UNICODE_SCRIPT_SUNDANESE, "G_UNICODE_SCRIPT_SUNDANESE", "sundanese" },
17884+        { G_UNICODE_SCRIPT_SAURASHTRA, "G_UNICODE_SCRIPT_SAURASHTRA", "saurashtra" },
17885+        { G_UNICODE_SCRIPT_CHAM, "G_UNICODE_SCRIPT_CHAM", "cham" },
17886+        { G_UNICODE_SCRIPT_OL_CHIKI, "G_UNICODE_SCRIPT_OL_CHIKI", "ol-chiki" },
17887+        { G_UNICODE_SCRIPT_VAI, "G_UNICODE_SCRIPT_VAI", "vai" },
17888+        { G_UNICODE_SCRIPT_CARIAN, "G_UNICODE_SCRIPT_CARIAN", "carian" },
17889+        { G_UNICODE_SCRIPT_LYCIAN, "G_UNICODE_SCRIPT_LYCIAN", "lycian" },
17890+        { G_UNICODE_SCRIPT_LYDIAN, "G_UNICODE_SCRIPT_LYDIAN", "lydian" },
17891+        { G_UNICODE_SCRIPT_AVESTAN, "G_UNICODE_SCRIPT_AVESTAN", "avestan" },
17892+        { G_UNICODE_SCRIPT_BAMUM, "G_UNICODE_SCRIPT_BAMUM", "bamum" },
17893+        { G_UNICODE_SCRIPT_EGYPTIAN_HIEROGLYPHS, "G_UNICODE_SCRIPT_EGYPTIAN_HIEROGLYPHS", "egyptian-hieroglyphs" },
17894+        { G_UNICODE_SCRIPT_IMPERIAL_ARAMAIC, "G_UNICODE_SCRIPT_IMPERIAL_ARAMAIC", "imperial-aramaic" },
17895+        { G_UNICODE_SCRIPT_INSCRIPTIONAL_PAHLAVI, "G_UNICODE_SCRIPT_INSCRIPTIONAL_PAHLAVI", "inscriptional-pahlavi" },
17896+        { G_UNICODE_SCRIPT_INSCRIPTIONAL_PARTHIAN, "G_UNICODE_SCRIPT_INSCRIPTIONAL_PARTHIAN", "inscriptional-parthian" },
17897+        { G_UNICODE_SCRIPT_JAVANESE, "G_UNICODE_SCRIPT_JAVANESE", "javanese" },
17898+        { G_UNICODE_SCRIPT_KAITHI, "G_UNICODE_SCRIPT_KAITHI", "kaithi" },
17899+        { G_UNICODE_SCRIPT_LISU, "G_UNICODE_SCRIPT_LISU", "lisu" },
17900+        { G_UNICODE_SCRIPT_MEETEI_MAYEK, "G_UNICODE_SCRIPT_MEETEI_MAYEK", "meetei-mayek" },
17901+        { G_UNICODE_SCRIPT_OLD_SOUTH_ARABIAN, "G_UNICODE_SCRIPT_OLD_SOUTH_ARABIAN", "old-south-arabian" },
17902+        { G_UNICODE_SCRIPT_OLD_TURKIC, "G_UNICODE_SCRIPT_OLD_TURKIC", "old-turkic" },
17903+        { G_UNICODE_SCRIPT_SAMARITAN, "G_UNICODE_SCRIPT_SAMARITAN", "samaritan" },
17904+        { G_UNICODE_SCRIPT_TAI_THAM, "G_UNICODE_SCRIPT_TAI_THAM", "tai-tham" },
17905+        { G_UNICODE_SCRIPT_TAI_VIET, "G_UNICODE_SCRIPT_TAI_VIET", "tai-viet" },
17906+        { G_UNICODE_SCRIPT_BATAK, "G_UNICODE_SCRIPT_BATAK", "batak" },
17907+        { G_UNICODE_SCRIPT_BRAHMI, "G_UNICODE_SCRIPT_BRAHMI", "brahmi" },
17908+        { G_UNICODE_SCRIPT_MANDAIC, "G_UNICODE_SCRIPT_MANDAIC", "mandaic" },
17909+        { G_UNICODE_SCRIPT_CHAKMA, "G_UNICODE_SCRIPT_CHAKMA", "chakma" },
17910+        { G_UNICODE_SCRIPT_MEROITIC_CURSIVE, "G_UNICODE_SCRIPT_MEROITIC_CURSIVE", "meroitic-cursive" },
17911+        { G_UNICODE_SCRIPT_MEROITIC_HIEROGLYPHS, "G_UNICODE_SCRIPT_MEROITIC_HIEROGLYPHS", "meroitic-hieroglyphs" },
17912+        { G_UNICODE_SCRIPT_MIAO, "G_UNICODE_SCRIPT_MIAO", "miao" },
17913+        { G_UNICODE_SCRIPT_SHARADA, "G_UNICODE_SCRIPT_SHARADA", "sharada" },
17914+        { G_UNICODE_SCRIPT_SORA_SOMPENG, "G_UNICODE_SCRIPT_SORA_SOMPENG", "sora-sompeng" },
17915+        { G_UNICODE_SCRIPT_TAKRI, "G_UNICODE_SCRIPT_TAKRI", "takri" },
17916+        { G_UNICODE_SCRIPT_BASSA_VAH, "G_UNICODE_SCRIPT_BASSA_VAH", "bassa-vah" },
17917+        { G_UNICODE_SCRIPT_CAUCASIAN_ALBANIAN, "G_UNICODE_SCRIPT_CAUCASIAN_ALBANIAN", "caucasian-albanian" },
17918+        { G_UNICODE_SCRIPT_DUPLOYAN, "G_UNICODE_SCRIPT_DUPLOYAN", "duployan" },
17919+        { G_UNICODE_SCRIPT_ELBASAN, "G_UNICODE_SCRIPT_ELBASAN", "elbasan" },
17920+        { G_UNICODE_SCRIPT_GRANTHA, "G_UNICODE_SCRIPT_GRANTHA", "grantha" },
17921+        { G_UNICODE_SCRIPT_KHOJKI, "G_UNICODE_SCRIPT_KHOJKI", "khojki" },
17922+        { G_UNICODE_SCRIPT_KHUDAWADI, "G_UNICODE_SCRIPT_KHUDAWADI", "khudawadi" },
17923+        { G_UNICODE_SCRIPT_LINEAR_A, "G_UNICODE_SCRIPT_LINEAR_A", "linear-a" },
17924+        { G_UNICODE_SCRIPT_MAHAJANI, "G_UNICODE_SCRIPT_MAHAJANI", "mahajani" },
17925+        { G_UNICODE_SCRIPT_MANICHAEAN, "G_UNICODE_SCRIPT_MANICHAEAN", "manichaean" },
17926+        { G_UNICODE_SCRIPT_MENDE_KIKAKUI, "G_UNICODE_SCRIPT_MENDE_KIKAKUI", "mende-kikakui" },
17927+        { G_UNICODE_SCRIPT_MODI, "G_UNICODE_SCRIPT_MODI", "modi" },
17928+        { G_UNICODE_SCRIPT_MRO, "G_UNICODE_SCRIPT_MRO", "mro" },
17929+        { G_UNICODE_SCRIPT_NABATAEAN, "G_UNICODE_SCRIPT_NABATAEAN", "nabataean" },
17930+        { G_UNICODE_SCRIPT_OLD_NORTH_ARABIAN, "G_UNICODE_SCRIPT_OLD_NORTH_ARABIAN", "old-north-arabian" },
17931+        { G_UNICODE_SCRIPT_OLD_PERMIC, "G_UNICODE_SCRIPT_OLD_PERMIC", "old-permic" },
17932+        { G_UNICODE_SCRIPT_PAHAWH_HMONG, "G_UNICODE_SCRIPT_PAHAWH_HMONG", "pahawh-hmong" },
17933+        { G_UNICODE_SCRIPT_PALMYRENE, "G_UNICODE_SCRIPT_PALMYRENE", "palmyrene" },
17934+        { G_UNICODE_SCRIPT_PAU_CIN_HAU, "G_UNICODE_SCRIPT_PAU_CIN_HAU", "pau-cin-hau" },
17935+        { G_UNICODE_SCRIPT_PSALTER_PAHLAVI, "G_UNICODE_SCRIPT_PSALTER_PAHLAVI", "psalter-pahlavi" },
17936+        { G_UNICODE_SCRIPT_SIDDHAM, "G_UNICODE_SCRIPT_SIDDHAM", "siddham" },
17937+        { G_UNICODE_SCRIPT_TIRHUTA, "G_UNICODE_SCRIPT_TIRHUTA", "tirhuta" },
17938+        { G_UNICODE_SCRIPT_WARANG_CITI, "G_UNICODE_SCRIPT_WARANG_CITI", "warang-citi" },
17939+        { G_UNICODE_SCRIPT_AHOM, "G_UNICODE_SCRIPT_AHOM", "ahom" },
17940+        { G_UNICODE_SCRIPT_ANATOLIAN_HIEROGLYPHS, "G_UNICODE_SCRIPT_ANATOLIAN_HIEROGLYPHS", "anatolian-hieroglyphs" },
17941+        { G_UNICODE_SCRIPT_HATRAN, "G_UNICODE_SCRIPT_HATRAN", "hatran" },
17942+        { G_UNICODE_SCRIPT_MULTANI, "G_UNICODE_SCRIPT_MULTANI", "multani" },
17943+        { G_UNICODE_SCRIPT_OLD_HUNGARIAN, "G_UNICODE_SCRIPT_OLD_HUNGARIAN", "old-hungarian" },
17944+        { G_UNICODE_SCRIPT_SIGNWRITING, "G_UNICODE_SCRIPT_SIGNWRITING", "signwriting" },
17945+        { G_UNICODE_SCRIPT_ADLAM, "G_UNICODE_SCRIPT_ADLAM", "adlam" },
17946+        { G_UNICODE_SCRIPT_BHAIKSUKI, "G_UNICODE_SCRIPT_BHAIKSUKI", "bhaiksuki" },
17947+        { G_UNICODE_SCRIPT_MARCHEN, "G_UNICODE_SCRIPT_MARCHEN", "marchen" },
17948+        { G_UNICODE_SCRIPT_NEWA, "G_UNICODE_SCRIPT_NEWA", "newa" },
17949+        { G_UNICODE_SCRIPT_OSAGE, "G_UNICODE_SCRIPT_OSAGE", "osage" },
17950+        { G_UNICODE_SCRIPT_TANGUT, "G_UNICODE_SCRIPT_TANGUT", "tangut" },
17951+        { G_UNICODE_SCRIPT_MASARAM_GONDI, "G_UNICODE_SCRIPT_MASARAM_GONDI", "masaram-gondi" },
17952+        { G_UNICODE_SCRIPT_NUSHU, "G_UNICODE_SCRIPT_NUSHU", "nushu" },
17953+        { G_UNICODE_SCRIPT_SOYOMBO, "G_UNICODE_SCRIPT_SOYOMBO", "soyombo" },
17954+        { G_UNICODE_SCRIPT_ZANABAZAR_SQUARE, "G_UNICODE_SCRIPT_ZANABAZAR_SQUARE", "zanabazar-square" },
17955+        { G_UNICODE_SCRIPT_DOGRA, "G_UNICODE_SCRIPT_DOGRA", "dogra" },
17956+        { G_UNICODE_SCRIPT_GUNJALA_GONDI, "G_UNICODE_SCRIPT_GUNJALA_GONDI", "gunjala-gondi" },
17957+        { G_UNICODE_SCRIPT_HANIFI_ROHINGYA, "G_UNICODE_SCRIPT_HANIFI_ROHINGYA", "hanifi-rohingya" },
17958+        { G_UNICODE_SCRIPT_MAKASAR, "G_UNICODE_SCRIPT_MAKASAR", "makasar" },
17959+        { G_UNICODE_SCRIPT_MEDEFAIDRIN, "G_UNICODE_SCRIPT_MEDEFAIDRIN", "medefaidrin" },
17960+        { G_UNICODE_SCRIPT_OLD_SOGDIAN, "G_UNICODE_SCRIPT_OLD_SOGDIAN", "old-sogdian" },
17961+        { G_UNICODE_SCRIPT_SOGDIAN, "G_UNICODE_SCRIPT_SOGDIAN", "sogdian" },
17962+        { G_UNICODE_SCRIPT_ELYMAIC, "G_UNICODE_SCRIPT_ELYMAIC", "elymaic" },
17963+        { G_UNICODE_SCRIPT_NANDINAGARI, "G_UNICODE_SCRIPT_NANDINAGARI", "nandinagari" },
17964+        { G_UNICODE_SCRIPT_NYIAKENG_PUACHUE_HMONG, "G_UNICODE_SCRIPT_NYIAKENG_PUACHUE_HMONG", "nyiakeng-puachue-hmong" },
17965+        { G_UNICODE_SCRIPT_WANCHO, "G_UNICODE_SCRIPT_WANCHO", "wancho" },
17966+        { G_UNICODE_SCRIPT_CHORASMIAN, "G_UNICODE_SCRIPT_CHORASMIAN", "chorasmian" },
17967+        { G_UNICODE_SCRIPT_DIVES_AKURU, "G_UNICODE_SCRIPT_DIVES_AKURU", "dives-akuru" },
17968+        { G_UNICODE_SCRIPT_KHITAN_SMALL_SCRIPT, "G_UNICODE_SCRIPT_KHITAN_SMALL_SCRIPT", "khitan-small-script" },
17969+        { G_UNICODE_SCRIPT_YEZIDI, "G_UNICODE_SCRIPT_YEZIDI", "yezidi" },
17970+        { G_UNICODE_SCRIPT_CYPRO_MINOAN, "G_UNICODE_SCRIPT_CYPRO_MINOAN", "cypro-minoan" },
17971+        { G_UNICODE_SCRIPT_OLD_UYGHUR, "G_UNICODE_SCRIPT_OLD_UYGHUR", "old-uyghur" },
17972+        { G_UNICODE_SCRIPT_TANGSA, "G_UNICODE_SCRIPT_TANGSA", "tangsa" },
17973+        { G_UNICODE_SCRIPT_TOTO, "G_UNICODE_SCRIPT_TOTO", "toto" },
17974+        { G_UNICODE_SCRIPT_VITHKUQI, "G_UNICODE_SCRIPT_VITHKUQI", "vithkuqi" },
17975+        { G_UNICODE_SCRIPT_MATH, "G_UNICODE_SCRIPT_MATH", "math" },
17976+        { 0, NULL, NULL }
17977+      };
17978+      GType g_define_type_id =
17979+        g_enum_register_static (g_intern_static_string ("GUnicodeScript"), values);
17980+      g_once_init_leave (&static_g_define_type_id, g_define_type_id);
17981+    }
17982+
17983+  return static_g_define_type_id;
17984+}
17985+GType
17986+g_normalize_mode_get_type (void)
17987+{
17988+  static gsize static_g_define_type_id = 0;
17989+
17990+  if (g_once_init_enter (&static_g_define_type_id))
17991+    {
17992+      static const GEnumValue values[] = {
17993+        { G_NORMALIZE_DEFAULT, "G_NORMALIZE_DEFAULT", "default" },
17994+        { G_NORMALIZE_NFD, "G_NORMALIZE_NFD", "nfd" },
17995+        { G_NORMALIZE_DEFAULT_COMPOSE, "G_NORMALIZE_DEFAULT_COMPOSE", "default-compose" },
17996+        { G_NORMALIZE_NFC, "G_NORMALIZE_NFC", "nfc" },
17997+        { G_NORMALIZE_ALL, "G_NORMALIZE_ALL", "all" },
17998+        { G_NORMALIZE_NFKD, "G_NORMALIZE_NFKD", "nfkd" },
17999+        { G_NORMALIZE_ALL_COMPOSE, "G_NORMALIZE_ALL_COMPOSE", "all-compose" },
18000+        { G_NORMALIZE_NFKC, "G_NORMALIZE_NFKC", "nfkc" },
18001+        { 0, NULL, NULL }
18002+      };
18003+      GType g_define_type_id =
18004+        g_enum_register_static (g_intern_static_string ("GNormalizeMode"), values);
18005+      g_once_init_leave (&static_g_define_type_id, g_define_type_id);
18006+    }
18007+
18008+  return static_g_define_type_id;
18009+}
18010+
18011+G_GNUC_END_IGNORE_DEPRECATIONS
18012+
18013+/* Generated data ends here */
18014+
18015diff --git a/gobject/glib-enumtypes.h b/gobject/glib-enumtypes.h
18016new file mode 100644
18017index 0000000..9844954
18018--- /dev/null
18019+++ b/gobject/glib-enumtypes.h
18020@@ -0,0 +1,25 @@
18021+
18022+/* This file is generated by glib-mkenums, do not modify it. This code is licensed under the same license as the containing project. Note that it links to GLib, so must comply with the LGPL linking clauses. */
18023+
18024+#ifndef __GOBJECT_ENUM_TYPES_H__
18025+#define __GOBJECT_ENUM_TYPES_H__
18026+
18027+#include <glib-object.h>
18028+
18029+G_BEGIN_DECLS
18030+
18031+/* enumerations from "../gobject/../glib/gunicode.h" */
18032+GLIB_AVAILABLE_IN_2_60 GType g_unicode_type_get_type (void) G_GNUC_CONST;
18033+#define G_TYPE_UNICODE_TYPE (g_unicode_type_get_type ())
18034+GLIB_AVAILABLE_IN_2_60 GType g_unicode_break_type_get_type (void) G_GNUC_CONST;
18035+#define G_TYPE_UNICODE_BREAK_TYPE (g_unicode_break_type_get_type ())
18036+GLIB_AVAILABLE_IN_2_60 GType g_unicode_script_get_type (void) G_GNUC_CONST;
18037+#define G_TYPE_UNICODE_SCRIPT (g_unicode_script_get_type ())
18038+GLIB_AVAILABLE_IN_2_60 GType g_normalize_mode_get_type (void) G_GNUC_CONST;
18039+#define G_TYPE_NORMALIZE_MODE (g_normalize_mode_get_type ())
18040+G_END_DECLS
18041+
18042+#endif /* __GOBJECT_ENUM_TYPES_H__ */
18043+
18044+/* Generated data ends here */
18045+
18046